使用函式為:
對影象做卷積
void cvfilter2d( const cvarr* src, cvarr* dst,srcconst cvmat* kernel,
cvpoint anchor=cvpoint(-1,-1));
輸入影象.
dst輸出影象.
kernel
卷積核, 單通道浮點矩陣. 如果想要應用不同的核于不同的通道,先用 cvsplit 函式分解影象到單個色彩通道上,然後單獨處理。
anchor
核的錨點表示乙個被濾波的點在核內的位置。 錨點應該處於核內部。預設值 (-1,-1) 表示錨點在核中心。
函式 cvfilter2d 對影象進行線性濾波,支援 in-place 操作。當核運算部分超出輸入影象時,函式從最近鄰的影象內部象素插值得到邊界外面的象素值。
實現**為:
#include "stdafx.h"
#include"cv.h"
#include"highgui.h"
#include "stdio.h"
int main(int argc,char**argv)
; cvmat km;
km=cvmat(3,3,cv_32fc1,k);
src=cvloadimage("lena.png");
dst = cvcreateimage(cvgetsize(src),ipl_depth_8u,3);
cvnamedwindow("src",0);
cvshowimage("src",src);
cvnamedwindow("filtering",0);
cvfilter2d(src,dst,&km,cvpoint(-1,-1));
cvshowimage("filtering",dst);
cvwaitkey(0);
cvreleaseimage(&src);
cvreleaseimage(&dst);
return 0;
}
從函式的功能和實現看,原始影象和運算後影象大小應一致。此處出現了不一致,不知道什麼原因。
1.學習opencv,於仕祺,劉瑞禎,清華大學出版社,pp.165-167
2.3.
opencv學習筆記 卷積和核
高度概括地說,卷積是在每乙個影象塊與某個運算元 核 之間進行的運算。核說白了就是乙個固定大小的數值陣列。該陣列帶有乙個 錨點 一般位於陣列 假如你想得到影象的某個特定位置的卷積值,可用下列方法計算 將核的錨點放在該特定位置的畫素上,同時,核內的其他值與該畫素鄰域的各畫素重合 將核內各值與相應畫素值相...
OpenCV 卷積邊緣
在使用卷積處理影象時,不免會因為卷積的大小而導致影象的邊緣畫素無法得到處理。此時就需要確定邊緣處理的設定引數。border default 通過邊緣畫素反向映象 border replicate 邊緣畫素的延長 border wrap 取對邊畫素點,類似於複製很多張影象平鋪在一起 border co...
opencv卷積核處理
關於卷積 這篇博文安利 高斯濾波的 卷積核就是影象處理時,給定輸入影象,在輸出影象中每乙個畫素是輸入影象中乙個小區域中畫素的加權平均,其中權值由乙個函式定義,這個函式稱為卷積核。其主要方法是通過確定的核塊來檢測影象的某個區域,之後根據所檢測的畫素與其他周圍存在的畫素的來讀差值來改變畫素明亮度。乙個三...