在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 圖形圖像教程 > 詳細頁面

OpenCV成長之路(3):模仿PhotoShop中魔術棒工具

OpenCV成長之路(3):模仿PhotoShop中魔術棒工具

更新時間:2025-09-23 文章作者:未知 信息來源:網絡 閱讀次數:

Adobe Photoshop,簡稱“PS”,是由Adobe Systems開發和發行的圖像處理軟件。Photoshop主要處理以像素所構成的數字圖像。使用其眾多的編修與繪圖工具,可以有效地進行圖片...
Adobe Photoshop,簡稱“PS”,是由Adobe Systems開發和發行的圖像處理軟件。Photoshop主要處理以像素所構成的數字圖像。使用其眾多的編修與繪圖工具,可以有效地進行圖片編輯工作。ps有很多功能,在圖像、圖形、文字、視頻、出版等各方面都有涉及。
本文的主題實際上是圖像的顏色空間的轉換,借助一個顏色選取程序來說明OpenCV中顏色轉換函數的用法以及一些注意事項。

一、幾種常見的顏色空間:

RGB顏色空間:RGB采用加法混色法,因為它是描述各種“光”通過何種比例來產生顏色。光線從暗黑開始不斷疊加 產生顏色。RGB描述的是紅綠藍三色光的數值。數字圖像存儲方面一般都是用RGB模式,值得注意的是OpenCV里三通道的存儲順序是BGR。

HSV,HSI:這兩個顏色格式都是根據人眼對顏色的區分來定義的格式,其中H(hue)表示色相,S(saturation)表示飽和度,V(value)表示明度,I(intensity)代表了亮度。

Lab空間:模型中均勻改變對應于在感知顏色中的均勻改變,所以我們可以把Lab想像為顏色空間中的一個點,相鄰的點靠的越近說明兩者的顏色越接近,所以Lab空間常用來度量兩個顏色的相似性。

更多顏色空間的知識可以參考:http://en.wikipedia.org/wiki/Color_space

二、OpenCV中的顏色空間轉換

OpenCV里通過cvtColor函數來完成圖片的顏色轉換,cvtColor是在opencv2/imgproc/imgproc.hpp頭文件中定義的,它的C++接口如下:

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )

src:輸入圖像。

dst:輸出圖像。

code:顏色轉換類型,比如:CV_BGR2Lab,CV_BGR2HSV,CV_HSV2BGR,CV_BGR2RGB。

dstCn:輸出圖像的通道號,如果默認為0,則表示按輸入圖像的通道數。

把image圖像由BGR轉換為Lab:cvtColor(image,image,CV_BGR2Lab)

三、簡單的魔術棒程序

首先我們定義一個colorDetect類:

class colorDetect{private:    int minDist; //minium acceptable distance    Vec3b target;//target color;    
    Mat result; //the resultpublic:
    colorDetect();    void SetMinDistance(int dist);    void SetTargetColor(uchar red,uchar green,uchar blue);    void SetTargetColor(Vec3b color); //set the target color    Mat process(const Mat& image); //main process};

其中的minDist是我們定義的閾值用于限定兩種顏色之間的距離,相當于PhotoShop中魔術棒工具的閾值。

target是目標顏色,相當于種子顏色。result是存儲處理得到的結果。

process是主要的處理程序,下面我們來看process的內容。

Mat colorDetect::process(const Mat& image)
{    Mat ImageLab=image.clone();
    result.create(image.rows,image.cols,CV_8U);    
    //將image轉換為Lab格式存儲在ImageLab中    
    cvtColor(image,ImageLab,CV_BGR2Lab);    
    //將目標顏色由BGR轉換為Lab    
    Mat temp(1,1,CV_8UC3);
    temp.at<Vec3b>(0,0)=target;//創建了一張1*1的臨時圖像并用目標顏色填充    
    cvtColor(temp,temp,CV_BGR2Lab);
    target=temp.at<Vec3b>(0,0);//再從臨時圖像的Lab格式中取出目標顏色

    // 創建處理用的迭代器    
    Mat_<Vec3b>::iterator it=ImageLab.begin<Vec3b>();    
    Mat_<Vec3b>::iterator itend=ImageLab.end<Vec3b>();    
    Mat_<uchar>::iterator itout=result.begin<uchar>();    
    while(it!=itend)
    {        
    //兩個顏色值之間距離的計算        
    int dist=static_cast<int>(norm<int,3>(Vec3i((*it)[0]-target[0],
            (*it)[1]-target[1],(*it)[2]-target[2])));        
            if(dist<minDist)
            (*itout)=255;        
            else            
            (*itout)=0;
        it++;
        itout++;
    }    return result;
}


程序中有2點需要特別注意:

1,在將圖像轉換為Lab空間后,目標顏色也需要進行轉換,做法是創建了一個臨時圖像。

2,判斷兩個顏色之間的距離運算了norm函數,它的運算是norm<typename,dim>(v)。其中v是一個dim維的向量。程序中是一個三維的適量,是兩個顏色值兩減后的結果。

那值得思考的是能不能把Vec3i((*it)[0]-target[0],(*it)[1]-target[1],(*it)[2]-target[2])替換為Vec3i((*it)-target)呢?答案是否的,因為(*it)-target在實際運算過程中會自動的把相減的結果進行類型限制。

我們對目標顏色和閾值進行這樣的設置后可以得到一個示例的效果:

cdet.SetTargetColor(150,150,150);
cdet.SetMinDistance(50);

OpenCV成長之路(3):模仿PhotoShop中魔術棒工具

更多OpenCV成長之路(3):模仿PhotoShop中魔術棒工具相關文章請關注PHP中文網!


Photoshop默認保存的文件格式,可以保留所有有圖層、色版、通道、蒙版、路徑、未柵格化文字以及圖層樣式等。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 五月天丁香花婷婷| 天堂中文av在线| 免费看污污视频| 国产喷水theporn| 日本免费黄视频| 亚洲熟妇无码av在线播放| 成人性生交视频免费观看| 激情五月婷婷久久| 国产精品69页| 999在线观看| 日韩va在线观看| 国产永久免费网站| 色一情一区二区三区| 欧美成人乱码一二三四区免费| 91香蕉视频污版| 黄色免费网址大全| 永久免费的av网站| www.夜夜爽| 欧美乱做爰xxxⅹ久久久| 69sex久久精品国产麻豆| 高清在线观看免费| 五月婷婷之综合激情| 污网站在线免费| 好色先生视频污| 欧美变态另类刺激| 天天爽夜夜爽一区二区三区| 激情五月俺来也| 超级碰在线观看| 欧美成人高潮一二区在线看| 97在线播放视频| 一区二区三区视频网| 黄色网址在线免费看| www.亚洲视频.com| 国产免费视频传媒| 青青草综合在线| 狠狠爱免费视频| 色偷偷中文字幕| 女人另类性混交zo| 久久久福利影院| 欧美一区二区三区爽大粗免费| 色播五月激情五月| 日韩激情免费视频| 国产精品久久成人免费观看| 91九色在线观看视频| 色乱码一区二区三区熟女| 国产精品网站免费| 成年人网站av| 成人免费视频久久| 亚洲精品久久久久久久蜜桃臀| 无码日韩人妻精品久久蜜桃| 狠狠精品干练久久久无码中文字幕| 国产96在线 | 亚洲| 伊人免费视频二| 熟妇人妻无乱码中文字幕真矢织江| 91香蕉视频在线观看视频| 国产性xxxx18免费观看视频| 成人在线免费高清视频| 波多野结衣xxxx| 久久久久国产一区| 热久久精品国产| 91免费黄视频| 大陆av在线播放| 国产免费一区二区视频| 吴梦梦av在线| 亚洲精品免费一区亚洲精品免费精品一区 | 国产91在线亚洲| 在线成人免费av| 熟女熟妇伦久久影院毛片一区二区| 最新中文字幕免费视频| 性欧美极品xxxx欧美一区二区| 日韩在线综合网| 欧美 日韩 国产 高清| 久久久性生活视频| 日本在线观看a| 国产三级日本三级在线播放| 亚洲国产精品毛片av不卡在线| 久久久免费视频网站| 日韩av一二三四区| 簧片在线免费看| 色婷婷综合网站| 在线观看三级网站| 免费看日本黄色| 精品久久久久久久免费人妻| 日韩视频免费在线播放| 成年人观看网站| 在线免费观看视频黄| 色偷偷中文字幕| 路边理发店露脸熟妇泻火| 亚洲国产精品无码av| 久久久免费视频网站| 一二三av在线| 成人免费观看cn| www.久久91| 国产一级爱c视频| 9久久婷婷国产综合精品性色| 无码内射中文字幕岛国片| 男女啪啪的视频| 农村妇女精品一二区| 午夜免费一级片| 男人揉女人奶房视频60分| 国产精欧美一区二区三区白种人| 国产精品久久国产| 国产免费又粗又猛又爽| 国产一线二线三线女| 狠狠热免费视频| 日韩xxxx视频| 在线观看中文av| 成人免费xxxxx在线视频| 国产免费xxx| 亚洲视频在线a| 天天夜碰日日摸日日澡性色av| 久久精品影视大全| cao在线观看| 在线成人免费av| 性chinese极品按摩| 日本日本19xxxⅹhd乱影响| 亚洲精品偷拍视频| www.精品在线| 国产精品wwwww| 777久久久精品一区二区三区| 欧美国产日韩在线视频| 黄色片在线免费| 99爱视频在线| 成年人午夜免费视频| 日本天堂免费a| 91大学生片黄在线观看| 亚洲精品在线网址| 免费黄频在线观看| 日韩精品视频一二三| 五月婷婷深爱五月| 一区二区在线播放视频| 国产手机视频在线观看| 国产一区二区四区| 和岳每晚弄的高潮嗷嗷叫视频 | 黄瓜视频免费观看在线观看www| 欧美精品卡一卡二| 996这里只有精品| 久久久国内精品| 国产无限制自拍| www.好吊操| 久久久久久久中文| a√天堂在线观看| 性生交免费视频| 亚洲精品手机在线观看| 9999在线观看| 精品人妻人人做人人爽| 青青草国产免费| 成人中文字幕在线播放| 国产成人久久婷婷精品流白浆| 国产精品无码人妻一区二区在线| 日本在线xxx| 99re精彩视频| 成人国产在线看| 熟妇人妻va精品中文字幕| 欧美成人福利在线观看| 青娱乐精品在线| 日韩国产欧美亚洲| 亚洲人辣妹窥探嘘嘘| 日本丰满少妇黄大片在线观看| 妺妺窝人体色777777| 色哟哟精品视频| japanese在线播放| 999精品视频在线| www.久久com| 欧美xxxxx在线视频| 伊人色在线视频| 极品粉嫩国产18尤物| 亚洲天堂国产视频| 国产日韩av网站| 天天色天天综合网| 韩国日本在线视频| 激情五月五月婷婷| 国产性生交xxxxx免费| 国产精品av免费| 久久网站免费视频| 久久精品一卡二卡| 日韩 欧美 高清| 999在线观看视频| 在线视频一二三区| 欧美成人三级在线播放| 亚洲精品无码国产| youjizz.com亚洲| 男人亚洲天堂网| 我的公把我弄高潮了视频| 日韩视频在线免费播放| 国产三级三级三级看三级| 亚洲国产成人精品无码区99| 手机在线视频你懂的| 自拍偷拍一区二区三区四区| 黑鬼大战白妞高潮喷白浆| 波多野结衣之无限发射| 穿情趣内衣被c到高潮视频| 手机在线国产视频| 天天干天天干天天干天天干天天干| 日韩欧美视频网站| 青青青青在线视频| 97在线免费视频观看| 国产青草视频在线观看| 成人在线观看毛片| 影音先锋成人资源网站|