我如何定义一个圆形滤波器,它的作用类似于中值滤波器(medfilt2),而不是n n的正方形邻域,而是在半径为r的圆形邻域上执行中值?我需要在2d-image上执行这个操作。(当然,最好是快速工作)。谢谢
发布于 2013-03-10 16:57:57
将ordfilt2与循环域一起使用。例如,
B = ordfilt2(A, order, domain)将A中的每个元素替换为由域中的非零元素指定的已排序邻居集合中的第3个元素。在您的示例中,创建一个循环域,如下所示
domain=fspecial('disk',10)>0;这会生成一个很好的二进制磁盘(21x21矩阵),它可能太大了,无法满足您的需求,因此可以使用fspecial或imresize重新调整大小以满足您的需要。那么中位数就是从域中排序的非零元素中获得的中间值,因此:
B = ordfilt2(A,round(0.5*numel(find(domain)))),domain);https://stackoverflow.com/questions/15320142
复制相似问题