OpenCV學習:將映像轉為二值映像(函數cvtColor和函數threshold)

來源:互聯網
上載者:User

想換一下CSDN賬戶的頭像,換成自己的真實的頭像,但是又不想那麼直接,乾脆就把頭像轉換成二值圖得了,因為從二值映像是推不出來原圖的。這個過程需要OpenCV的兩個函數,第一個函數是彩色映像轉化為灰階映像:cvtColor函數;下一個函數是由灰階圖轉化為二值映像函數:threshold函數。用法很簡單,代碼如下:

    cvtColor(img_origin,img_gray,CV_BGR2GRAY);    threshold(img_gray,img_binary,145,255,THRESH_BINARY);    imwrite("/home/hon/result.jpg",img_binary);    imshow("binary image",img_binary);

既然說到了這兩個函數,就說說這兩個函數的用法吧。這兩個函數都是OpenCV中C++系列的函數,函數沒有首碼cv(大部分參考書籍上介紹的OpenCV函數是c系列的,有首碼cv)。

cvtColor函數:

原型:

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

src和dst分別是待轉的映像(src)和待轉映像轉換後的映像(dst);code是一個掩碼,表示由src到dst之間是怎麼轉的,比如是彩色轉為灰階,還是彩色轉為HSI模式;最後的dstCn表示dst映像的波段數,這個值預設是0,它可以從參數code中推斷。

code的模式包括:

CV_RGB2GRAY:<彩色映像---灰階映像>

CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR, CV_YCrCb2RGB       <BGR空間---YChCb空間>

CV_BGR2HSV,
CV_RGB2HSV, CV_HSV2BGR, CV_HSV2RGB         <RGB空間---HSV空間>

更多的變換資訊可以參考 OpenCV 2.4.5 documentation:http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#void%20cvtColor%28InputArray%20src,%20OutputArray%20dst,%20int%20code,%20int%20dstCn%29

threshold函數:

原型:

double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)

src和dst分別是待處理的映像(src)和由src產生的二值映像(dst);thresh是閾值,所謂的閾值函數就肯定要有個閾值;maxval在某些模式使用,type就是模式了。

code的模式包括:

計算方法
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV

參考相關文檔:OpenCV 2.4.5 documentation:http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html?highlight=threshold#cv.Threshold

注意:threshold函數針對的是單通道映像,這個一定要注意!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.