一、彩色圖像轉(zhuǎn)灰度
Opencv提供了一個(gè)方法,可以使彩色圖像變?yōu)榛叶葓D像。
函數(shù)名:cvtColor(src,dest,way);
src表示初始的mat對(duì)象;
dest表示轉(zhuǎn)換后的mat對(duì)象;
way表示以何種方式轉(zhuǎn)換。
舉個(gè)例子:
int main()
{
//定義路徑
string path = "Resources//test.png";
//Mat:opencv引入的矩陣數(shù)據(jù)類(lèi)型,處理所有圖像
Mat img = imread(path);
//創(chuàng)建一個(gè)新的mat對(duì)象,用來(lái)存放轉(zhuǎn)換后的灰度圖像
Mat imgGray;
//灰度轉(zhuǎn)換函數(shù)
cvtColor(img, imgGray, COLOR_BGR2GRAY);
//展示圖片,并給圖片取名
imshow("Image", img);
//延遲,直到我們按下關(guān)閉按鈕
imshow("ImageGray", imgGray);
waitKey(0);
return 0;
}
這里的方法就是COLOR_BGR2GRAY,
解釋出來(lái)就是:RGB顏色to灰度。
運(yùn)行截圖:
二、高斯模糊
高斯模糊本質(zhì)上是低通濾波器,輸出圖像的每個(gè)像素點(diǎn)是原圖像上對(duì)應(yīng)像素點(diǎn)與周?chē)袼攸c(diǎn)的加權(quán)和。
函數(shù):GaussianBlur(src,dest,size(m,n),sigma1,sigma2);
高斯模糊,第三,第四,第五參數(shù)為高斯模糊的度數(shù)。
定義內(nèi)核大小為m*n,數(shù)字越大越模糊;
然后有sigma1和sigma2,這兩個(gè)數(shù)也是模糊度數(shù)的參數(shù),可定義為0。
//創(chuàng)建一個(gè)模糊對(duì)象
Mat imgBlur;
//高斯模糊,第三,第四,第五參數(shù)為高斯模糊的度數(shù),
//定義內(nèi)核大小為7*7,數(shù)字越大越模糊;
//然后有sigma1和sigma2,這兩個(gè)數(shù)可定義為0
GaussianBlur(img, imgBlur, Size(7, 7),0,0);
imshow("ImageBlur", imgBlur);
waitKey(0);
運(yùn)行截圖:
三、邊緣檢測(cè)
我們有很多邊緣檢測(cè)器,用于檢測(cè)圖像的邊緣輪廓。
最常用的是坎尼邊緣檢測(cè)器。
Canny(src,dest,low,high);
檢測(cè)前通常做模糊處理。
兩個(gè)閾值:雙閾值篩選
設(shè)置一個(gè)雙閾值,即低閾值(low),高閾值(high)。
灰度變化大于high的,設(shè)置為強(qiáng)邊緣像素,低于low的,剔除。
//坎尼邊緣檢測(cè)器
Mat imgCanny;
//檢測(cè)前通常做模糊處理
//兩個(gè)閾值:雙閾值篩選
//設(shè)置一個(gè)雙閾值,即低閾值(low),高閾值(high)。
//灰度變化大于high的,設(shè)置為強(qiáng)邊緣像素,低于low的,剔除。
Canny(imgBlur, imgCanny, 50, 150);
imshow("ImageCanny", imgCanny);
運(yùn)行截圖:
閾值為25,75:
到此這篇關(guān)于OpenCV實(shí)現(xiàn)灰度、高斯模糊、邊緣檢測(cè)的示例的文章就介紹到這了,更多相關(guān)OpenCV 灰度、高斯模糊、邊緣檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python使用opencv實(shí)現(xiàn)馬賽克效果示例
- Opencv+Python實(shí)現(xiàn)圖像運(yùn)動(dòng)模糊和高斯模糊的示例
- opencv實(shí)現(xiàn)圖片模糊和銳化操作
- OpenCV3.3+Python3.6實(shí)現(xiàn)圖片高斯模糊
- 超詳細(xì)注釋之OpenCV實(shí)現(xiàn)視頻實(shí)時(shí)人臉模糊和人臉馬賽克