MATLAB Answers

Nicholas
0

fspecial -Disk filter -Algorithm

Asked by Nicholas
on 19 Sep 2014
Latest activity Commented on by Image Analyst
on 23 Sep 2014
I'm trying to understand how matlab creates its disk filter function. In a continuous domain, a disk is just 1 inside some radius and 0 outside that radius.
The tricky part about making the disk function with an image is that the edge pixels may be partially inside the disk and partially outside the disk. It appears that the matlab function assigns the edge pixels a value equal to the area of the pixel contained in the disk.
I've been trying to derive the algorithm for how one would do that, but it seems that this isn't straight forward. Is there a paper or textbook detailing how to create the disk function seen in the fspecial function? Is this problem much easier than I think it is?

  0 Comments

Sign in to comment.

1 Answer

Answer by Image Analyst
on 19 Sep 2014

Because it's a digital computer, the circle has to be digitized/quantized. See the FAQ for an algorithm: http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_circle.3F

  7 Comments

Image Analyst
on 22 Sep 2014
You can see the algorithm by bringing fspecial up in the editor:
>> edit fspecial
Nicholas
on 23 Sep 2014
I can see the algorithm, but the algorithm is complicated and I'd like an explanation of the geometry. I wasn't able to derive the algorithm. I'm after a reference or a derivation.
Image Analyst
on 23 Sep 2014
It probably is a typical anti-aliasing routine where you "feather" the edges according to how much of the square tile circle would be taken up by a perfect circle. So if the circle would cover 30% of the square, it will have 30% of the solid, interior value.

Sign in to comment.