OpenCV實(shí)現(xiàn)灰度、高斯模糊、邊緣檢測(cè)的示例
一、彩色圖像轉(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ù)類型,處理所有圖像
Mat img = imread(path);
//創(chuàng)建一個(gè)新的mat對(duì)象,用來存放轉(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,
解釋出來就是:RGB顏色to灰度。
運(yùn)行截圖:

二、高斯模糊
高斯模糊本質(zhì)上是低通濾波器,輸出圖像的每個(gè)像素點(diǎn)是原圖像上對(duì)應(yīng)像素點(diǎn)與周圍像素點(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用正則表達(dá)式替換匹配成功的組并輸出替換的次數(shù)
正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。這篇文章主要介紹了python使用正則表達(dá)式替換匹配成功的組并輸出替換的次數(shù),需要的朋友可以參考下2017-11-11
python利用datetime模塊計(jì)算程序運(yùn)行時(shí)間問題
這篇文章主要介紹了python利用datetime模塊計(jì)算程序運(yùn)行時(shí)間,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
Python中XlsxWriter模塊簡(jiǎn)介與用法分析
這篇文章主要介紹了Python中XlsxWriter模塊用法,簡(jiǎn)單描述了XlsxWriter模塊的功能并結(jié)合實(shí)例形式分析了Python使用XlsxWriter模塊操作xls文件的數(shù)據(jù)插入、直方圖等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
python腳本作為Windows服務(wù)啟動(dòng)代碼詳解
本篇文章給大家分享了用python腳本寫出作為Windows服務(wù)啟動(dòng)功能,對(duì)此有需求的朋友跟著小編一起學(xué)習(xí)下。2018-02-02
Python的化簡(jiǎn)函數(shù)reduce()詳解
這篇文章主要介紹了Python的化簡(jiǎn)函數(shù)reduce()詳解,reduce()函數(shù)即為化簡(jiǎn)函數(shù),它的執(zhí)行過程為:每一次迭代,都將上一次的迭代結(jié)果與下一個(gè)元素一同傳入二元func函數(shù)中去執(zhí)行,需要的朋友可以參考下2023-12-12
pyqt5移動(dòng)鼠標(biāo)顯示坐標(biāo)的方法
今天小編就為大家分享一篇pyqt5移動(dòng)鼠標(biāo)顯示坐標(biāo)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面
這篇文章主要為大家詳細(xì)介紹了PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08

