[英]How can I mask a polygon in an image in MATLAB?
最简单的方法是使用图像处理工具箱中的poly2mask
函数从多边形创建二进制蒙版,然后将图像外的所有像素设置为图像中的0(即黑色):
img = imread('Vlc1.1.png'); % Image data, assumed to be 3D RGB image
pos = [170 350 290 230 430 230 600 350 170 350]; % Pairs of x-y coordinates
bw = ~poly2mask(pos(1:2:end), pos(2:2:end), size(img, 1), size(img, 2)); % 2D mask
bw = repmat(bw, [1 1 size(img, 3)]); % Replicate the mask to make it 3D
maskimg = img;
maskimg(bw) = 0;
imshow(maskimg);
使用示例图像的裁剪版本,结果如下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.