OpenCV實現(xiàn)灰度、高斯模糊、邊緣檢測的示例
一、彩色圖像轉(zhuǎn)灰度
Opencv提供了一個方法,可以使彩色圖像變?yōu)榛叶葓D像。
函數(shù)名:cvtColor(src,dest,way);
src表示初始的mat對象;
dest表示轉(zhuǎn)換后的mat對象;
way表示以何種方式轉(zhuǎn)換。
舉個例子:
int main() { //定義路徑 string path = "Resources//test.png"; //Mat:opencv引入的矩陣數(shù)據(jù)類型,處理所有圖像 Mat img = imread(path); //創(chuàng)建一個新的mat對象,用來存放轉(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灰度。
運行截圖:
二、高斯模糊
高斯模糊本質(zhì)上是低通濾波器,輸出圖像的每個像素點是原圖像上對應(yīng)像素點與周圍像素點的加權(quán)和。
函數(shù):GaussianBlur(src,dest,size(m,n),sigma1,sigma2);
高斯模糊,第三,第四,第五參數(shù)為高斯模糊的度數(shù)。
定義內(nèi)核大小為m*n,數(shù)字越大越模糊;
然后有sigma1和sigma2,這兩個數(shù)也是模糊度數(shù)的參數(shù),可定義為0。
//創(chuàng)建一個模糊對象 Mat imgBlur; //高斯模糊,第三,第四,第五參數(shù)為高斯模糊的度數(shù), //定義內(nèi)核大小為7*7,數(shù)字越大越模糊; //然后有sigma1和sigma2,這兩個數(shù)可定義為0 GaussianBlur(img, imgBlur, Size(7, 7),0,0); imshow("ImageBlur", imgBlur); waitKey(0);
運行截圖:
三、邊緣檢測
我們有很多邊緣檢測器,用于檢測圖像的邊緣輪廓。
最常用的是坎尼邊緣檢測器。
Canny(src,dest,low,high);
檢測前通常做模糊處理。
兩個閾值:雙閾值篩選
設(shè)置一個雙閾值,即低閾值(low),高閾值(high)。
灰度變化大于high的,設(shè)置為強邊緣像素,低于low的,剔除。
//坎尼邊緣檢測器 Mat imgCanny; //檢測前通常做模糊處理 //兩個閾值:雙閾值篩選 //設(shè)置一個雙閾值,即低閾值(low),高閾值(high)。 //灰度變化大于high的,設(shè)置為強邊緣像素,低于low的,剔除。 Canny(imgBlur, imgCanny, 50, 150); imshow("ImageCanny", imgCanny);
運行截圖:
閾值為25,75:
到此這篇關(guān)于OpenCV實現(xiàn)灰度、高斯模糊、邊緣檢測的示例的文章就介紹到這了,更多相關(guān)OpenCV 灰度、高斯模糊、邊緣檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解PyCharm+QTDesigner+PyUIC使用教程
這篇文章主要介紹了詳解PyCharm+QTDesigner+PyUIC使用教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Python中uuid模塊生成唯一標(biāo)識符的方法詳解
這篇文章主要給大家介紹了關(guān)于Python中uuid模塊生成唯一標(biāo)識符的相關(guān)資料,uuid庫是Python標(biāo)準(zhǔn)庫中的一個功能強大的庫,可以用于生成全局唯一標(biāo)識符(UUID),文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08