日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像卷积与滤波知识点整理(2)

發布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像卷积与滤波知识点整理(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文參考博文:?http://blog.csdn.net/yangtrees/article/details/8740933


1.圖像卷積(模板)

(1).使用模板處理圖像相關概念:?????

?????模板:矩陣方塊,其數學含義是卷積運算。? ? ??

? ? ?卷積運算:可看作是加權求和的過程,使用到的圖像區域中的每個像素分別于卷積(權矩陣)的每個元素對應相?乘,所有乘積之和作為區域中心像素的新值。
?????卷積核:卷積時使用到的權用一個矩陣表示,該矩陣一個權矩陣。
? ? ?卷積示例:
????????????? 3 * 3?的像素區域R與卷積G卷積運算:
??????????????R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 + R9G9
????????????

(2).使用模板處理圖像的問題(越界問題):
?????? 邊界問題:當處理圖像邊界像素時,卷積與圖像使用區域不能匹配,卷積核的中心邊界像素點對應,卷積運算將出現問題。
?????? 處理辦法:
????????????? A.?忽略邊界像素,即處理后的圖像將丟掉這些像素。
????????????? B.?保留原邊界像素,即copy邊界像素到處理后的圖像。

(3).常用模板


我們來看下一維卷積的概念
連續空間的卷積定義: ?f(x)g(x)的卷積是 f(t-x)g(x) 在t從負無窮到正無窮的積分值. t-x要在f(x)定義域內,所以看上去很大的積分實際上還是在定范圍的.?實際的過程就是f(x) 先做一個Y軸的反轉,然后再沿X軸平移t就是f(t-x),然后再把g(x)拿來,兩者乘積的值再積分.想象下如果g(x)或者f(x)是個單位的階越函數. 那么就是f(t-x)g(x)相交部分的面積.這就是卷積了.
把積分符號換成求和就是離散空間的卷積定義了.那么在圖像卷積卷積地是什么意思呢,就是圖像就是圖像f(x),模板是g(x),然后將模版g(x)在模版中移動,每到一個位置,就把f(x)g(x)的定義域相交的元素卷積定義上是線性系統分析經常用到的.線性系統就是一個系統的輸入和輸出的關系是線性關系.就是說整個系統可以分解成N多的無關獨立變化,整個系統就是這些變化的累加.?如 x1->y1, x2->y2; 那么A*x1 + B*x2 -> A*y1 + B*y2 這就是線性系統. 表示一個線性系統可以用積分的形式?

,

就是f(t,x)表示的是A B之類的線性系數.看上去很像卷積呀,對,如果f(t,x) = F(t-x) 不就是了嗎.從f(t,x)變成F(t-x)實際上是說明f(t,x)是個線性移不變,就是說變量的差不變化的時候, 那么函數的值不變化. 實際上說明一個事情就是說線性移不變系統的輸出可以通過輸入和表示系統線性特征的函數卷積得到.


2.圖像濾波

(1)圖像濾波,即在盡量保留圖像細節特征的條件下對目標圖像的噪聲進行抑制,是圖像預處理中不可缺少的操作,其處理效果的好壞將直接響到后續圖像處理和分析的有效性和可靠性。(濾波就是要去除沒用的信息,保留有用的信息,可能是低頻,也可能是高頻)

(2)濾波的目的有兩個:一是抽出對象的特征作為圖像識別的特征模式; ?另一個是為適應圖像處理的要求,消除圖像數字化時所混入的噪聲。

對濾波處理的要求有兩條:一是不能損壞圖像的輪廓及邊緣等重要信息;二是使圖像清晰視覺效果好。

(3)圖像的濾波方法:?

(一)圖像的濾波方法很多,主要可以分為頻率域法和空間域法兩大類。頻率域法的處理是在圖像的某種變換域內,對圖像的變換系數值進行運算,然后通過逆變換獲得增強圖像。這是一種間接的圖像濾波方法??臻g濾波方法是一類直接的濾波方法,它在處理圖像時直接對圖像灰度作運算。

? ? ?<1>頻率域濾波:是將圖像從空間或時間域轉換到頻率域,再利用變換系數反映某些圖像特征的性質進行圖像濾波的方法。傅立葉變換是一種常用的變換。在傅立葉變換域,頻譜的直流分量正比于圖像的平均亮度,噪聲對應于頻率較高的區域,圖像實體位于頻率較低的區域。圖像在變換具有的這些內在特性可被用于圖像濾波??梢詷嬙煲粋€低通濾波器,使低頻分量順利通過而有效地阻于高頻分量,即可濾除圖像的噪聲,再經過反變換來取得平滑的圖像。

? ? ? ? ? 低通的數學表達式如下式所示:
? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ??

? ? ? ? ? 式中F (u, v)一含有噪聲的原圖像的傅立葉變換;
? ? ? ? ? H (u, v)一為傳遞函數,也稱轉移函數(即低通濾波器);
? ? ? ? ? G (u, v)一為經低通濾波后輸出圖像的傅立葉變換。
? ? ? ? ? H濾波濾去高頻成分,而低頻信息基本無損失地通過。濾波后,經傅立葉變換反變換可得平滑圖像,即
?????????
?選擇適當的傳遞函數H (u, v),對頻率域低通濾波關系重大。常用的傳遞函數有梯形函數、指數函數、巴特沃思函數等。
? ? ? ? ? 頻域常用的幾種低通濾波器為理想低通濾波器(Ideal? circular Iow-passfilter)、巴特沃思(Butterworth)低通濾波器、指數低通濾波器及梯形低通濾波器。這些低通濾波器,都能在圖像內有噪聲干擾成分時起到改善的作用。
? ? ? <2>常用的平面空間域濾波法有兩類: ?

? ? ? ? ? 一類是擬合圖像的方法,包括n階多項式擬合、離散正交多項式擬合、二次曲面擬合等多種方法;?

? ? ? ? ? 另一類是平滑圖像的方法,包括領域平均法、中值濾波法、梯度倒數加權法、選擇式掩模法等。

(二)按頻率高低

? ? ? <1>高通濾波:邊緣提取與增強。邊緣區域的灰度變換加大,也就是頻率較高。所以,對于高通濾波,邊緣部分將被保留,非邊緣部分將被過濾;

? ? ? <2>低通濾波:邊緣平滑,邊緣區域將被平滑過渡。

? ? ? ? ?附:高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,在圖像處理的降噪、平滑中應用較多,特別是對抑制或消除服從正態分布的噪聲非常有效。
? ? ? ? 高斯濾波的過程其實就是對整幅圖像進行加權平均操作的過程。濾波后圖像上每一個像素的灰度值大小,由其本身和鄰域內的其他像素共同決定。具體實現是:用一個大小為(2*N+1)的模板(或稱卷積核、掩模)依次掃描圖像中的每一個像素,用模板確定的鄰域內像素的加權平均灰度替代模板中心像素點的灰度值。

? ? ? ? 一般用到的3*3模板與5*5模板:

? ? ? ? 從結構化掩模中可以看到,處于掩模中心的位置比其他任何像素的權值都大,因此在均值計算中給定的這一像素顯得更為重要。而距離掩模中心較遠的像素就顯得不太重要,這樣做是為了減小平滑處理中的模糊。

下圖為3*3模板 5*5模板的測試效果:


? ? ? ? 單純從效果來看, 兩個模板都起到了平滑的作用,只是程度有深淺的區分. 那么從理論上來說為什么能起到平滑的作用呢? 很顯然, 像素的顏色不僅由自身決定,同時由其周圍的像素加權決定, 客觀上減小了和周圍像素的差異。同時這些權重的設定滿足了越近權重越大的規律。 從理論來講, 這些權重的分布滿足了著名的所謂高斯分布。高斯卷積核的尺寸越大,圖像的平滑效果越好,表現為圖像越模糊,同時圖像細節丟失的越多;尺寸越小,平滑效果越弱,圖像細節丟失越少。

上述測試用例的源碼為:

#include "highgui.h" ? ?
#include "cv.h" ? ?

void gaussianFilter(uchar* data, int width, int height)
{
int i, j, index, sum;
int templates[25] = { 1, 4, 7, 4, 1,
4, 16, 26, 16, 4,
7, 26, 41, 26, 7,
4, 16, 26, 16, 4,
1, 4, 7, 4, 1 };//5*5模板 ? ??
sum = height * width * sizeof(uchar);//圖像所占內存容量 ? ??
uchar *tmpdata = (uchar*)malloc(sum);
memcpy((char*)tmpdata, (char*)data, sum);
for (i = 2; i < height - 2; i++)
{
for (j = 2; j < width - 2; j++)
{
index = sum = 0;
for (int m = i - 2; m < i + 3; m++)
{
for (int n = j - 2; n < j + 3; n++)
{
sum += tmpdata[m * width + n] * templates[index++]; ? ??
}
}
data[i * width + j] = sum / 273;
}
}
free(tmpdata);
}

void imgOperate(IplImage* image)
{
cvNamedWindow("image-in5", CV_WINDOW_AUTOSIZE);
cvNamedWindow("image-access5", CV_WINDOW_AUTOSIZE);
cvNamedWindow("image-out5", CV_WINDOW_AUTOSIZE);
cvShowImage("image-in5", image);
//將色彩圖像強制轉化為灰度圖像 ? ?
IplImage* pGrayImg = NULL;
IplImage* pImg = NULL;
pGrayImg = cvCreateImage(cvGetSize(image), 8, 1);
pImg = cvCreateImage(cvGetSize(image), 8, 1);
cvCvtColor(image, pGrayImg, CV_RGB2GRAY); ?
//添加高斯噪聲 ?
cvZero(pImg);
CvRNG rng = cvRNG(-1); ?//初始化隨機數發生器 ?
cvRandArr(&rng, pImg, CV_RAND_NORMAL, cvScalarAll(0), cvScalarAll(15));
cvAdd(pGrayImg, pImg, pImg);
cvShowImage("image-access5", pImg);
gaussianFilter((unsigned char*)pImg->imageData, pImg->width, pImg->height);
cvShowImage("image-out5", pImg);
cvReleaseImage(&pGrayImg);
cvWaitKey(0);
cvDestroyWindow("image-in5");
cvDestroyWindow("image-out5");
}

int main()
{
IplImage* img = cvLoadImage("E:\\11.jpg");
imgOperate(img);
cvReleaseImage(&img);
return 0;
}


(三)線性與非線性濾波

? ? ? ? <1>線性濾波:線性濾波器的原始數據與濾波結果是一種算術運算,即用加減乘除等運算實現,如(1)均值濾波器(模板內像素灰度值的平均值)、(2)高斯濾波器(高斯加權平均值)等。由于線性濾波器是算術運算,有固定的模板,因此濾波器的轉移函數是可以確定并且是唯一的(轉移函數即模板的傅里葉變換)。

<2>非線性濾波:非線性濾波器的原始數據與濾波結果是一種邏輯關系,即用邏輯運算實現,如最大值濾波器、最小值濾波器、中值濾波器等,是通過比較一定鄰域內的灰度值大小來實現的,沒有固定的模板,因而也就沒有特定的轉移函數(因為沒有模板作傅里葉變換),另外,膨脹和腐蝕也是通過最大值、最小值濾波器實現的。五種常見的非線性濾波算子,這五種濾波算子對不同的圖像都會有不同的作用,最常用的是中值濾波,因為它的效果最好且信息損失的最少。

(1).極大值濾波

??? 極大值濾波就是選取像素點領域的最大值作為改點的像素值,有效率去了灰度值比較低的噪聲,也可作為形態學里面的膨脹操作。

??? 極大值濾波可以表示為:?Maximum(A)=max[A(x+i,y+j)]??????(x,y)屬于M

? ? 注:(x+i,y+j)是定義在圖像上的坐標,(i,j)是定義在模板M上的坐標。M即為運算的模板。

(2).極小值濾波(與極大值濾波相反)

(3).中點濾波

?? ? 中點濾波常用于去除圖像中的短尾噪聲,例如高斯噪聲和均勻分布噪聲。終點濾波器的輸出時給定窗口內灰度的極大值和極小值的平均值;

??? Midpoint(A)=(max[A(x+i,y+j)]+min[A(x+i,y+j)])/2??????????(x,y)屬于M

? ?注:(x+i,y+j)是定義在圖像上的坐標,(i,j)是定義在模板M上的坐標。M即為運算的模板。

(4).中值濾波

?? 中值濾波可以消除圖像中的長尾噪聲,例如負指數噪聲和椒鹽噪聲。在消除噪聲時,中值濾波對圖像噪聲的模糊極小(受模板大小的影響),中值濾波實質上是用模板內所包括像素灰度的中值來取代模板中心像素的灰度。中值濾波在消除圖像內椒鹽噪聲和保持圖像的空域細節方面,其性能優于均值濾波。

?????? Median(A)=Median[A(x+i,y+j)]??????????????(x,y)屬于M

注:(x+i,y+j)是定義在圖像上的坐標,(i,j)是定義在模板M上的坐標。M即為運算的模板。

(5).加權中值濾波(中值濾波的改進)

??? 加權中值濾波是在中值濾波的基礎上加以改進,其性能在一定程度上優于中值濾波。

? ?? 下面是自己在算法上的改進:以例子說明

? ?? 若說選模板的大小為5,那么這個模板就唯一確定為:

?????????????1??1??5???1???1???

?????????????1??1??5???1???1??

?????????????5??5??5???5???5???

?????????????1??1??5???1???1??

?????????????1??1??5???1???1???

??? 上圖中的數字表式改點像素在序列中出現的次數。然后根據模板平滑圖像。實驗證明該方法好于傳統中值濾波。當然還有其他方法;

附:噪聲(高斯噪聲:是指噪聲服從高斯分布,即某個強度的噪聲點個數最多,離這個強度越遠噪聲點個數越少,且這個規律服從高斯分布。高斯噪聲是一種加性噪聲,即噪聲直接加到原圖像上,因此可以用線性濾波器濾除。椒鹽噪聲:類似把椒鹽撒在圖像上,因此得名,是一種在圖像上出現很多白點或黑點的噪聲,如電視里的雪花噪聲等。椒鹽噪聲可以認為是一種邏輯噪聲,用線性濾波器濾除的結果不好,一般采用中值濾波器濾波可以得到較好的結果。)


3.圖像平滑

圖像平滑 image smoothing: 壓制、弱化或消除圖像中的細節、突變、邊緣和噪聲,就是圖像平滑化。圖像平滑是對圖像作低通濾波,可在空間域或頻率域實現??臻g域圖像平滑方法主要用低通卷積濾波、中值濾波等;頻率域圖像平滑常用的低通濾波器有低通梯形濾波器、低通高斯濾波器、低通指數濾波器、巴特沃思低通濾波器等。



關系:

圖像卷積:一種實現手段,不管是濾波還是別的什么,可以說是數學在圖像處理的一種延伸。

圖像濾波:一種圖像處理方法,來實現不同目的。

圖像平滑:實際上就是低通濾波。

總結

以上是生活随笔為你收集整理的图像卷积与滤波知识点整理(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。