【发布时间】:2011-06-06 19:27:56
【问题描述】:
我需要在 MATLAB 中裁剪一个圆圈。
我需要进行虹膜分割,我已经确定了虹膜的中心点和半径,我需要将其从图像中切掉。
我有一个向量 ci,ci(1) 是 X 坐标,ci(2) 是 Y 坐标,ci(3) 是圆的半径。
【问题讨论】:
标签: matlab image-processing crop
我需要在 MATLAB 中裁剪一个圆圈。
我需要进行虹膜分割,我已经确定了虹膜的中心点和半径,我需要将其从图像中切掉。
我有一个向量 ci,ci(1) 是 X 坐标,ci(2) 是 Y 坐标,ci(3) 是圆的半径。
【问题讨论】:
标签: matlab image-processing crop
一种方法是创建一个二进制掩码,圆圈内为 1,圆圈外为 0。然后,您可以使用此数组用 NaN 遮盖圆外的所有内容,或读取遮罩内图像的像素值。
要创建圆形蒙版,一种简单的方法是创建以虹膜为中心的坐标数组,并设置距离阈值,如下所示:
[xx,yy] = ndgrid((1:imageSize(1))-ci(1),(1:imageSize(2))-ci(2));
mask = (xx.^2 + yy.^2)<ci(3)^2;
【讨论】:
image(~mask) = NaN;,这样imshow(image,[]) 中的自动缩放就不会被图像中的所有零所影响。
scalespace_radii):pastebin.com/WkS5ShMf 欢迎任何有关如何改进计算的建议!