學習筆記 OpenCv C (四)

2021-10-02 15:31:58 字數 2011 閱讀 9499

影象的模糊

模糊原理

smooth/blur是影象處理中最簡單和常用的操作之一

使用該操作的原因之一就為了給影象預處理時候減低雜訊

使用smooth/blur操作器背後是數學的卷積計算

g(i,j) = 求和(f(i+k,j+i)h(k,i))

通常這些卷積運算元計算都是線性操作,所以有叫線性濾波

假設有6x6的影象畫素點矩陣

卷積過程:6x6上面是個3x3的視窗,從左向右,從上向下移動

黃色的每個像個畫素點之和取平均值賦給中心紅色畫素作為它卷積處理之後新的畫素值。每次移動乙個畫素格。

邊緣處理最簡單的方法:

向外擴張。插值

歸一化盒子濾波(均值濾波)

權重不同

高斯濾波

相對於均值濾波,會保留畫素原有的特質

相關api

均值模糊

blur(mat src,mat dst,size(xradius,yradius),point(-1,-1));

//注意:point表示中心畫素在**,(-1,-1)預設正中心

dst(x,y) = 求和(kernel(x1,y1)*src(x+x1-anchor.x,y+y1-anchor.y))

高斯模糊

gaussianblur(mat src,mat dst,size(11,11),sigmax,sigmay);

其中size(x,y),x,y必須是正數而且是奇數

#include#includeusing namespace cv;

int main(int argc,char** ar**) ,其中,f(x,y),g(x,y)分別為原始影象和處理後影象。w為二維模板,通常為3*3,5*5區域,也可以是不同的的形狀,如線狀,圓形,十字形,圓環形等。

雙邊濾波

均值模糊無法克服邊緣畫素資訊丟失缺陷。原因是均值濾波是基於平均權重

高斯模糊部分克服了該缺陷,但是無法完全避免,因為沒有考慮畫素值的不同

高斯雙邊模糊是邊緣保留的濾波方法,避免了邊緣資訊丟失,保留了影象輪廓不變。

中值模糊:medianblur(mat src,mat dest,ksize)

雙邊模糊:bilateralfilter(src,dest,d=15,150,3);

15計算的半徑,半徑之內的畫素都會被納入計算,如果提供-1,則根據sigma space引數取值

150  sigma color決定多少插值之內的畫素會被計算

3 sigma space如果d的值大於0則宣告無效,否則根據它來計算d值

中值模糊的ksize大小必須是大於而且必須是奇數

#include#includeusing namespace cv;

int main(int argc,char** ar**)

namedwindow("input image",cv_window_autosize);

imshow("input image",src);

//medianblur(src,dst,3);//中值模糊

bilateralfilter(src,dst,15,150.3);//雙邊模糊

namedwindow("median filter result",cv_window_autosize);

imshow("median filter result",dst);

mat gblur;

gaussianblur(src,gblur,size(15,15),3,3);

imshow("gaussianblur image",gblur);

mat resultimg;

mat kernel = (mat_(3,3)<<0,-1,0,-1,5,-1,0,-1,0);

filter2d(dst,resultimg,-1,kernel,point(-1,-1),0);

imshow("final result",resultimg);

waitkey(0);

return 0;

}

opencv C 學習筆記

1.opencv實際上是在c 的基礎上增加的庫,本質上還是c 2.mat 乙個類,用來建立物件來儲存影象的資訊 3.namedwindow 新建乙個顯示視窗 5.cout 輸出到工作台 6.image.rows cols 影象的行數 列數 7.waitkey 0 等待使用者按鍵事件 8.median...

學習筆記 OpenCV C 一)

22 38 載入影象 cv imread 功能是載入影象檔案成為乙個mat物件,其中第乙個引數表示影象檔案名稱 第二個引數表示載入的影象是什麼型別,支援常見的三個引數值 imread unchanged 0 表示載入原圖,不做任何改變 imread grayscale 0 表示把原圖作為灰度影象載入...

學習筆記 OpenCV C (三)

調整影象亮度和對比度 理論畫素變換 點操作 鄰域操作 區域 做影象的卷積,影象特徵提取,影象梯度計算,影象更深入模式匹配,模糊,平滑等 調整影象亮度和對比度屬於畫素變換 點操作 g i,j a f i,j p 其中a 0,p是增益變數 重要api mat new image mat zeros im...