matlab卷积代码,卷积的Matlab代码实现
《數字圖像處理》實驗課上老師讓盡量給出自己的源碼,查閱資料初步了解了卷積的基本原理,所以針對實驗課上的例子給出了自己的卷積變換代碼。總之,卷積變換代碼并不復雜,前提是了解了卷積的基本原理,這里有一個參考鏈接感覺講的很棒,請查閱過后再閱讀我的代碼。
博客鏈接:https://blog.csdn.net/jinv5/article/details/52874880
%%拉普拉斯算子增強(卷積在下面)
clear all
load imdemos circuit%在圖像處理工具箱中加載'circuit'圖像
I = circuit;
I = double(I);
imshow(I, []);
h = [0 1 0;1 -4 1; 0 1 0];
J = conv2(I, h, 'same');%以h為卷積核對I進行卷積,返回與I相同大小的中心部分
K = I - J;
figure, imshow(J, []);
figure, imshow(K, []);
%%自己編碼實現卷積運算
%先補0
myF = zeros(2, 4 + size(I, 2));
myF(3:(size(I, 1) + 2), 1:2) = 0;
myF(3:(size(I, 1) + 2),3:(size(I, 1) + 2)) = I;
myF(3:(size(I, 1) + 2),size(I, 1) + 3:size(I, 1) + 4) = 0;
myF(size(I, 1) + 3:size(I, 1) + 4, 1:size(I, 1) + 4) = 0;
%進行卷積 卷積順序改變不會影響卷積的結果
P = ones(4 + size(I, 1), 4 + size(I, 2));
for i = 3:(2 + size(I, 1))
for j = 3:(2 + size(I, 2))
for m = 1:3
for n = 1:3
P(i, j) = P(i, j) + myF(i + m-2, j + n-2)*h(m, n);
end
end
end
end
P = P(3:size(I, 1) + 2, 3:size(I, 2));
figure, imshow(P, []);
效果展示:
原圖I: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 利用matlab卷積函數conv2(I, h, 'same')求得的結果: ? ? ?自己編碼求得的卷積變換結果:
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
總結
以上是生活随笔為你收集整理的matlab卷积代码,卷积的Matlab代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Memcached缓存在.Net 中的使
- 下一篇: matlab卷积