我想从图像中提取椭圆区域(图像中面部部分的一部分),最好在 MATLAB 中:
例如,在此图像中,我想提取红色边界内的区域。
谁能帮我这个 ?
裁剪很容易,您所要做的就是应用适当的蒙版。诀窍是创建这样一个蒙版。
假设A
是你的图像,试试这个:
%# Create an ellipse shaped mask
c = fix(size(A) / 2); %# Ellipse center point (y, x)
r_sq = [76, 100] .^ 2; %# Ellipse radii squared (y-axis, x-axis)
[X, Y] = meshgrid(1:size(A, 2), 1:size(A, 1));
ellipse_mask = (r_sq(2) * (X - c(2)) .^ 2 + ...
r_sq(1) * (Y - c(1)) .^ 2 <= prod(r_sq));
%# Apply the mask to the image
A_cropped = bsxfun(@times, A, uint8(ellipse_mask));
裁剪后的图像将存储在A_cropped
。
调整中心坐标和半径值,直到获得所需的结果。
EDIT:我扩展了 RGB 图像的解决方案(如果矩阵A
是 3-D)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)