• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab 图像处理中卷积的几种实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

代码

clear;close all;clc

img1 = rand(5,5); % 输入图像
img2 = rand(5,5); % 核

% 卷积的几种实现方式
a = conv2(img1,img2,\'same\');
b = imfilter(img1,rot90(img2,2));
c = imfilter(img1,img2,\'conv\');
d = filter2(rot90(img2,2),img1);

% 对比
cmp = [a(:),b(:),c(:),d(:)];

总结

观察 cmp 矩阵后发现三者数值一样,但通过计算误差发现,仍然存在极小的误差,这与函数的实现原理有关,因此可以近似地认为以上三种方法能够获得一样的卷积效果。

  • 使用 conv2(A,B) 实现卷积,A 为图像,B 为核。
  • 使用 imfilter(A,rot90(B)) 实现卷积,A 为图像,B 为核。因为该函数主要功能是实现滤波的,即直接对应位置元素加权求和,但卷积需要翻转 180 度,故使用 rot90(),逆时针翻转 2 个 90 度,再滤波即为卷积。或者直接指定其滤波类型为卷积,即 imfilter(A,B,\'conv\'), A 为图像,B 为核。
  • 使用 filter2(rot90(B),A) 实现卷积,A 为图像,B 为核。filter2 是 imfilter2 的单通道形式,即只能处理单通道滤波,故同样先翻转 180 度再做滤波,这里核的位置在前面,需要尤其注意。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiXE5forAndroid(二)发布时间:2022-07-18
下一篇:
delphi实现电脑屏幕旋转(电脑屏幕,不是手机屏幕)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap