二維高斯函式模版處理影象為什麼會造成邊緣的缺失

時間 2021-05-06 00:44:42

1樓:匿名使用者

你可以去看高斯函式自身長什麼樣,在邊緣的地方就是降下去的。在和影象做卷積的時候,等效在頻域內將高頻的訊號都濾除了,而邊緣正是高頻訊號,所以你用高斯濾波,必然導致邊緣模糊啊。

matlab 高斯濾波模板是怎麼選取的?怎麼取均值、方差的值對應出來的模板係數是整數呢?

2樓:匿名使用者

首先用fspecial給出來的不會是整數(除非是1x1的矩陣)因為fspecial出來的矩陣都是歸一化的,所有元素的和是1因為模版濾波相當於對模版對應大小的影象快進行加權平均,權重的總應該是1

就簡單的均值濾波,例如2x2的濾波模版應該是| 0.25 0.25 |

| 0.25 0.25 |

而對於高斯濾波,以你給的3x3模版為例,歸一化後為0.0625 0.1250 0.

06250.1250 0.2500 0.

12500.0625 0.1250 0.

0625相當於原來的矩陣 除以它自身所有元素的和

如過先不考慮歸於化,想用整數的序列近似高斯濾波模版簡單起見,我們先考率1維的情況,那麼可以簡單的使用楊輝三角來近似長度為3時[1 2 1]

長度為4時[1 3 3 1]

長度為5時[1 4 6 4 1]

...........

因為使用楊輝三角可以很好地保留高斯模版的乙個性質兩個高斯模版的卷積還是高斯模版

例如兩個長度3的楊輝三角序列,卷積出長度5的序列conv([1 2 1],[1 2 1])ans =

1 4 6 4 1而二維的模版,可以用一維的模版用矩陣乘法獲得[1 2 1]'*[1 2 1]

ans =

1 2 1

2 4 2

1 2 1

獲得整數矩陣後,可以除以其所有元素的總和來歸一化

3樓:風之風信子

你是問為什麼不是小數嗎?

由於模板大小限制,這些處理都是離散的,模板越大這些就越接近正確結果。

其實你想想,如果乙個小小的3*3模板你用小數做根本沒意義的,計算精度沒提高徒增計算時間。

高斯濾波模板3*3 5*5 7*7 這些數不用你記住,下次用直接複製過來就可以。

其實都是對高斯函式的離散模擬。

歡迎追問。

高斯濾波器平滑影象是什麼原理,能簡單解釋下嗎

4樓:元器件達人宇

主要是平滑影象~~~高斯函式具有五個重要的性質,這些性質使得它在早期影象處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際影象處理中得到了工程人員的有效使用.高斯函式具有五個十分重要的性質,它們是:

(1)二維高斯函式具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅影象的邊緣方向是事先不知道的,因此,在濾波前是無法確定乙個方向上比另一方向上需要更多的平滑.旋轉對稱性意味著高斯平滑濾波器在後續邊緣檢測中不會偏向任一方向.

(2)高斯函式是單值函式.這表明,高斯濾波器用畫素鄰域的加權均值來代替該點的畫素值,而每一鄰域畫素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種影象區域性特徵,如果平滑運算對離運算元中心很遠的畫素點仍然有很大作用,則平滑運算會使影象失真.

(3)高斯函式的付立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函式付立葉變換等於高斯函式本身這一事實的直接推論.影象常被不希望的高頻所汙染(雜訊和細紋理).而所希望的影象特徵(如邊緣),既含有低頻分量,又含有高頻分量.高斯函式付立葉變換的單瓣意味著平滑影象不會被不需要的高頻所汙染,同時保留了大部分所需.

(4)高斯濾波器寬度(決定著平滑程度)是由引數σ表徵的,而且σ和平滑程度的關係是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度引數σ,可在影象特徵過分模糊(過平滑)與平滑影象中由於雜訊和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷.

(5)由於高斯函式的可分離性,大高斯濾波器可以得以有效地實現.二維高斯函式卷積可以分兩步來進行,首先將影象與一維高斯函式進行卷積,然後將卷積結果與方向垂直的相同一維高斯函式卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長.

硬之城上面應該有這個,可以去看看有沒有教程之類的,因為畢竟上面的技術資料型號等都很全面也是最新的,所以能解決很多問題。

matlab中如何對影象作理想高通濾波處理

5樓:匿名使用者

i=imread('cameraman.tif');

figure(1);imshow(i);

j=imnoise(i,'gaussian',0,0.02);

figure(2);imshow(j);

j=double(j);

f=fft2(j); %採用傅利葉變換

g=fftshift(f); %資料局陳平衡

[m,n]=size(f);

n1=floor(m/2);

n2=floor(n/2);

d0=10;

for i=1:m

for j=1:n

d=sqrt((i-n1)^2+(j-n2)^2);

if d>=d0

h1=1;

h2=1+0.5;

else

h1=0;

h2=0.5;

endg1(i,j)=h1*g(i,j);

g2(i,j)=h2*g(i,j);

endend

g1=ifftshift(g1);

g1=uint8(real(ifft2(g1))); %顯示理想高通濾波結果

figure(3);imshow(g1);

title('理想高通濾波結果')

g2=ifftshift(g2);

g2=uint8(real(ifft2(g2)));

figure(4);imshow(g2); %顯示理想高通加強濾波結果

title('理想高通加強濾波結果')

ps為什麼使用高斯模糊後**的邊緣有黑邊 如何解決

6樓:

分離高斯模糊的方法,就是將二維高斯模糊分成兩個一維的高斯模糊,分別在x和y方向上進行計算

7樓:epr降臨派

是不是不是乙個圖層的啊?在高斯模糊處理後,圖層尤其是影象的邊緣部分會降低不透明度,就像羽化效果一樣。一定程度上露出下面的圖層。

高斯核函式的計算機視覺中的作用

8樓:白白先生

在計算機視覺中,有時也簡稱為高斯函式。高斯函式具有五個重要的性質,這些性質使得它在早期影象處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際影象處理中得到了工程人員的有效使用.高斯函式具有五個十分重要的性質,它們是:

(1)二維高斯函式具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅影象的邊緣方向是事先不知道的,因此,在濾波前是無法確定乙個方向上比另一方向上需要更多的平滑.旋轉對稱性意味著高斯平滑濾波器在後續邊緣檢測中不會偏向任一方向.

(2)高斯函式是單值函式.這表明,高斯濾波器用畫素鄰域的加權均值來代替該點的畫素值,而每一鄰域畫素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種影象區域性特徵,如果平滑運算對離運算元中心很遠的畫素點仍然有很大作用,則平滑運算會使影象失真.

(3)高斯函式的傅利葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函式付立葉變換等於高斯函式本身這一事實的直接推論.影象常被不希望的高頻訊號所汙染(雜訊和細紋理).而所希望的影象特徵(如邊緣),既含有低頻分量,又含有高頻分量.高斯函式傅利葉變換的單瓣意味著平滑影象不會被不需要的高頻訊號所汙染,同時保留了大部分所需訊號.

(4)高斯濾波器寬度(決定著平滑程度)是由引數σ表徵的,而且σ和平滑程度的關係是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度引數σ,可在影象特徵過分模糊(過平滑)與平滑影象中由於雜訊和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷.

(5)由於高斯函式的可分離性,大高斯濾波器可以得以有效地實現.二維高斯函式卷積可以分兩步來進行,首先將影象與一維高斯函式進行卷積,然後將卷積結果與方向垂直的相同一維高斯函式卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長.

matlab處理影象邊緣,如何將二值影象的粗糙邊緣變得光滑,

9樓:803路快車

中值濾波試試~

kernel = 3;

output= medfilt2(input,[kernel ,kernel ]);

感覺還是不錯的,角點的大斜率基本上可以保留,然後邊緣的毛刺給濾掉了。

10樓:

用matlab處理**除了提到的「灰度**換)」去除雜訊,如果就直接二值化得話,對於一副對比度不大的**,是不容易清楚地區分的。可以試試灰度拉伸,灰度值均衡化,自適應閾值分割等影象增強的方法。

尺寸測量也就是特徵提取,面積可以用掃瞄法計算區域的畫素值,如sum=0;

for i=30:480

for j=5:505

if j2(i,j)>=0.5 (j2為處理影象)sum=sum+1;

end如果是計算輪廓長度,用邊緣提取的計算再用掃瞄法計算畫素值點。

matlab影象處理的演算法用到得程式都不難,只要你的影象處理流程試出來的效果好,計算相對都比較簡單。

11樓:

針對你這個影象,可以用方形結構體,膨脹、腐蝕、膨脹、腐蝕、膨脹、腐蝕……

excel中用何函式進行二維定位

excel中,vlookup函式的第三引數,是指希望返回第幾列的資料,這個引數往往用數字表示,是固定的,如果在源資訊表裡增減列,就不會返回想要的結果,不隨增減列影響結果的方法 1.返回列的序號,用表示式,而不用固定數字序號,比如 vlookup c2,sheet1 a n,column sheet1...

c 中二維陣列作為引數傳遞到函式

問明 方法1 第一維的長度可以不指定 但必須指定第二維的長度。include void print a int a 5 int n,int m int i,j for i 0 i n i for j 0 j m j printf d a i j printf n 方法2 指向乙個有5個元素一維陣列的...

什麼是二維條碼,什麼是一維條碼和二維條碼

平時超市用的是一維條型碼,簡單理解為它只在橫向記錄資料而二維的條碼是方形的,可以在橫向及縱向同時記錄資料,也就是可以記錄更多的資料 現在南韓日本等國家普遍用 中國還在起步階段 1 在兩個方向上都有資料資訊的條碼叫二維條碼。2 超市裡面使用的都是一維條碼 3 是的 名詞解釋之 code 16k 條碼 ...