MATLAB: как вырезать круг из изображения - PullRequest
8 голосов
/ 11 января 2011

Мне нужно обрезать круг в MATLAB.

Мне нужно выполнить сегментацию радужки, и я определила центральную точку и радиус радужки, и мне нужно отрезать ее от изображения.

У меня есть вектор ci, где ci (1) является X-координатой, ci (2) является Y-координатой, а ci (3) является радиусом окружности.

1 Ответ

10 голосов
/ 11 января 2011

Один из способов сделать это - создать двоичную маску с единицами внутри круга и нулями снаружи. Затем вы можете использовать этот массив либо для маскировки всего, что находится за пределами круга, с помощью NaN, либо для считывания значений пикселей изображения внутри маски.

Чтобы создать маску круга, проще всего создать координатные массивы, центрированные на радужной оболочке, и ограничить расстояние следующим образом:

[xx,yy] = ndgrid((1:imageSize(1))-ci(1),(1:imageSize(2))-ci(2));
mask = (xx.^2 + yy.^2)<ci(3)^2;
...