【发布时间】:2015-01-13 00:07:55
【问题描述】:
有没有办法将下面代码中的低通和高通滤波器组合成一个内核并应用一个 conv2() 函数?
注意:长度(lfilter)= 21,长度(hfilter)= 81。
我们在最后一步中所做的基本上是说从图像中移除大对象(在已经使用高斯模糊移除非常小的对象之后)。
properties (Constant)
minStar = 2; % min star radius
maxStar = 8; % max star radius
threshold = 12;
end
function filter2(this)
normalize = @(x) x/sum(x);
lfilter = normalize(exp(-((-ceil(5*this.minStar):ceil(5*this.minStar))/(2*this.minStar)).^2));
hfilter = normalize(exp(-((-ceil(5*this.maxStar):ceil(5*this.maxStar))/(2*this.maxStar)).^2));
this.low = conv2(lfilter',lfilter,this.raw,'same');
this.high = conv2(hfilter',hfilter,this.raw,'same');
this.filtered = this.low - this.high;
this.foreground = this.filtered > this.threshold;
end
【问题讨论】:
标签: matlab convolution