matlab conv2 补零,matlab图像平滑与conv2

我是成像处理的新手,我发现实施图像平滑的一些困难。matlab图像平滑与conv2

基本上,我有一个图像A,我想用当地平均值代替所有像素。所以我定义了口罩M1 = ones(10)并使用

newImage = conv2(A, M1,'same')

它工作正常。但在图像A中,由于噪声,完全没有意义的像素,我不想将它们包含在平均值中。我该怎么做,说有意义的像素是通过另一个掩模M2定义的?

我在图像上做了一个简单的循环。它工作但比conv2()慢。

for i = 1:self.row

for j = 1:self.col

if self.M2(i,j) % only treat meaningful pixels

A(i,j) = self.createAvgPhasor(i,j);

end

end

end

function [s_avg]=createAvgPhasor(self,m,n)

% bound box along x

if m > self.rB

xl = m - self.rB;

else

xl = 1;

end

if m < self.row_rB

xu = m + self.rB;

else

xu = self.row;

end

% bound box along y

if n > self.rB

yl = n - self.rB;

else

yl = 1;

end

if n < self.col_rB

yu = n + self.rB;

else

yu = self.col;

end

M1 = false(self.row,self.col);

M1(xl:xu,yl:yu) = true;

msk = M1 & self.M2;

s_avg = mean(self.Phi(msk));

end

非常感谢您的帮助。

2012-11-06

nos

+0

所以问题是你想用无意义的像素做什么?你是否想用平均值替换它们,但不包括它们的平均值?你想保持它们的方式,用黑色替换它们... –

+0

我不在乎噪声像素的值。最后它们可以设置为0。在平均中排除它们是我想要的。 –

+0

好的,我更新了我的答案,希望这有助于, –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值