MATLAB: как обрезать круг из изображения

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

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

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

1 ответов


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

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

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