我们正在处理我们主要项目中的问题,我们希望您能帮助我们。我们的项目是便携式人脸识别系统。我们需要从选定的边界切出一张脸。
这是我们的代码:
img=imread('10.jpg');
for i = 1:size(img,1)
for j = 1:size(img,2)
R = img(i,j,1);
G = img(i,j,2);
B = img(i,j,3);
if(R > 92 && G > 40 && B > 20)
v = [R,G,B];
if(abs(R-G) > 15 && R > G && R > B)
final_image(i,j) = 1;
end
end
end
end
imshow(final_image)
rgbInputImage=img;
%Grayscale To Binary.
binaryImage=im2bw(final_image,0.6);
%Filling The Holes.
binaryImage = imfill(binaryImage, 'holes');
binaryImage = bwareaopen(binaryImage,1890);
figure,imshow(binaryImage);
labeledImage = bwlabel(binaryImage, 8);
答案 0 :(得分:1)
您可以检查MATLAB内置函数roipoly。它将采用边界的x-y
坐标并构建多边形蒙版。这个二进制掩码可以与您的图像相乘以提取面部。
答案 1 :(得分:0)
您可以在MATLAB中使用imcrop函数。有关更多信息,请在命令窗口中输入帮助imcrop。