一、彩色圖像轉灰度
Opencv提供了一個方法,可以使彩色圖像變為灰度圖像。
函數名:cvtColor(src,dest,way);
src表示初始的mat對象;
dest表示轉換后的mat對象;
way表示以何種方式轉換。
舉個例子:
int main()
{
//定義路徑
string path = "Resources//test.png";
//Mat:opencv引入的矩陣數據類型,處理所有圖像
Mat img = imread(path);
//創建一個新的mat對象,用來存放轉換后的灰度圖像
Mat imgGray;
//灰度轉換函數
cvtColor(img, imgGray, COLOR_BGR2GRAY);
//展示圖片,并給圖片取名
imshow("Image", img);
//延遲,直到我們按下關閉按鈕
imshow("ImageGray", imgGray);
waitKey(0);
return 0;
}
這里的方法就是COLOR_BGR2GRAY,
解釋出來就是:RGB顏色to灰度。
運行截圖:

二、高斯模糊
高斯模糊本質上是低通濾波器,輸出圖像的每個像素點是原圖像上對應像素點與周圍像素點的加權和。
函數:GaussianBlur(src,dest,size(m,n),sigma1,sigma2);
高斯模糊,第三,第四,第五參數為高斯模糊的度數。
定義內核大小為m*n,數字越大越模糊;
然后有sigma1和sigma2,這兩個數也是模糊度數的參數,可定義為0。
//創建一個模糊對象
Mat imgBlur;
//高斯模糊,第三,第四,第五參數為高斯模糊的度數,
//定義內核大小為7*7,數字越大越模糊;
//然后有sigma1和sigma2,這兩個數可定義為0
GaussianBlur(img, imgBlur, Size(7, 7),0,0);
imshow("ImageBlur", imgBlur);
waitKey(0);
運行截圖:

三、邊緣檢測
我們有很多邊緣檢測器,用于檢測圖像的邊緣輪廓。
最常用的是坎尼邊緣檢測器。
Canny(src,dest,low,high);
檢測前通常做模糊處理。
兩個閾值:雙閾值篩選
設置一個雙閾值,即低閾值(low),高閾值(high)。
灰度變化大于high的,設置為強邊緣像素,低于low的,剔除。
//坎尼邊緣檢測器
Mat imgCanny;
//檢測前通常做模糊處理
//兩個閾值:雙閾值篩選
//設置一個雙閾值,即低閾值(low),高閾值(high)。
//灰度變化大于high的,設置為強邊緣像素,低于low的,剔除。
Canny(imgBlur, imgCanny, 50, 150);
imshow("ImageCanny", imgCanny);
運行截圖:

閾值為25,75:

到此這篇關于OpenCV實現灰度、高斯模糊、邊緣檢測的示例的文章就介紹到這了,更多相關OpenCV 灰度、高斯模糊、邊緣檢測內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python使用opencv實現馬賽克效果示例
- Opencv+Python實現圖像運動模糊和高斯模糊的示例
- opencv實現圖片模糊和銳化操作
- OpenCV3.3+Python3.6實現圖片高斯模糊
- 超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克