在給定的應用程序中,我應用平均蒙版來輸入圖像以減少噪音,然後應用拉普拉斯面具來增強小細節。任何人都知道如果我在Matlab中顛倒這些操作的順序,我會得到相同的結果嗎?圖像處理中的平均蒙版和拉普拉斯面具
回答
用拉普拉斯算子進行卷積類似於使用關於強度變化的二階導數信息。由於這個導數對噪聲敏感,我們通常在應用拉普拉斯濾波器之前用高斯光滑圖像。
這裏是類似於發佈@belisarius一個MATLAB例如:
f='http://upload.wikimedia.org/wikipedia/commons/f/f4/Noise_salt_and_pepper.png';
I = imread(f);
kAvg = fspecial('average',[5 5]);
kLap = fspecial('laplacian',0.2);
lapMask = @(I) imsubtract(I,imfilter(I,kLap));
subplot(131), imshow(I)
subplot(132), imshow(imfilter(lapMask(I),kAvg))
subplot(133), imshow(lapMask(imfilter(I,kAvg)))
數字上的結果是不一樣的,但圖像看起來非常相似。
例在數學:
編輯
的回答爲@thron在他的關於線性濾波器和填充減刑答案評論,只考慮以下操作。
雖然高斯和拉普拉斯濾波器的換向,而不填充爲真:
list = {1, 3, 5, 7, 5, 3, 1};
gauss[x_] := GaussianFilter[ x, 1]
lapl[x_] := LaplacianFilter[x, 1]
Print[gauss[lapl[list]], lapl[gauss[list]]]
(*
->{5.15139,0.568439,-1.13688,-9.16589,-1.13688,0.568439,5.15139}
{5.15139,0.568439,-1.13688,-9.16589,-1.13688,0.568439,5.15139}
*)
否則具有填充相同的,導致在邊緣的差:
gauss[x_] := GaussianFilter[ x, 1, Padding -> 1]
lapl[x_] := LaplacianFilter[x, 1, Padding -> 1]
Print[gauss[lapl[list]], lapl[gauss[list]]]
(*
->{4.68233,0.568439,-1.13688,-9.16589,-1.13688,0.568439,4.68233}
{4.58295,0.568439,-1.13688,-9.16589,-1.13688,0.568439,4.58295}
*)
比方說你有兩個過濾器F1
和F2
和圖像I
。如果通過兩個過濾器通過你的形象,你會得到這是在哪裏在這裏我使用*
表示convolution定義爲
X = ((I * F1) * F2)
的響應。按照卷積的聯合規則,這與之相同。
X = (I * (F1 * F2))
使用可交換
,我們可以說,
X = (I * (F2 * F1)) = ((I * F2) * F1)
當然,這是數學的漂亮連續域,一臺機器上做這些事情,意味着將有舍入誤差,一些數據可能迷路了。你也應該考慮一下,如果你的過濾器是FIR,否則將數字過濾作爲卷積分類的思維的整個概念開始崩潰,因爲你的過濾器不能按照你想要的方式行事。
編輯
離散卷積被定義爲
所以你的數據的邊緣加零不改變在數學意義上任何東西。正如有些人指出的那樣,你會以數字方式得到不同的答案,但是每當我們處理計算實際數據時,都會有這樣的答案。這些變化應該很小並且限於卷積輸出的低能量分量(即:邊緣)。
考慮卷積運算如何工作也很重要。涉及長度爲X
和長度爲Y
的兩組數據將產生長度爲X+Y-1
的答案。在MATLAB和Mathematica等程序中有一些幕後的魔法可以給你一個長度爲X
或Y
的答案。
因此,對於@belisarius的帖子,看起來我們確實在說同樣的事情。
很好,謝謝! – Glove 2011-06-14 20:36:31
應用圖像過濾器通常需要一些填充(特別爲每個過濾器設置,具體取決於圖像邊界上的值)。這打破了交換屬性。 – 2011-06-14 21:35:02
@belisarius我不知道我跟隨如何填充(零或否則)會打破卷積的交換屬性。你能提供一個證明嗎? – 2011-06-14 22:06:04
- 1. 圖像處理:最小化規範的拉普拉斯具有邊界條件
- 2. 拉普拉斯圖像濾波和銳化MATLAB中的圖像
- 3. 斯卡拉圖像處理
- 4. 拉普拉斯平滑到Biopython
- 5. 如何使用八度計算拉普拉斯和拉普拉斯反算?
- 6. 如何計算拉普拉斯面具或任何大小
- 7. Matlab中的拉普拉斯內核Libsvm
- 8. R中的逆拉普拉斯變換
- 9. matlab中的逆拉普拉斯變換
- 10. 哈利斯拉普拉斯興趣點檢測器中的高斯拉普拉斯
- 11. 高斯拉普拉斯算子
- 12. 反轉奇異矩陣(拉普拉斯逆拉普拉斯算子)
- 13. 高斯內核的普通拉普拉斯算子
- 14. 根據斯卡拉地圖中的值計算平均值
- 15. 拉普拉斯平滑效果先驗/證據如何
- 16. 使用蒙版獲取圖像的平均值
- 17. 斯卡拉平均像素的返回矩陣
- 18. 斯卡拉 - 地圖和平面地圖之間的差異
- 19. 拉普拉斯濾波器的面罩尺寸較大?
- 20. 拉普拉斯分佈取樣
- 21. 拉普拉斯濾波器公式
- 22. Sympy計算逆拉普拉斯變換
- 23. 拉普拉斯漢明濾波器
- 24. Matlab:拉普拉斯展開式
- 25. 縮放拉普拉斯檢測
- 26. 從拉普拉斯評估求解
- 27. 2D離散拉普拉斯(del2)在C + +
- 28. 斯卡拉事件處理
- 29. 斯卡拉併發處理
- 30. 斯卡拉流處理
好,謝謝!那麼當程序被逆轉時發生了什麼? – Glove 2011-06-14 19:47:03
@biz:'thron of three'解釋得很好,請參考他的回答 – Amro 2011-06-14 20:17:43