1

私たちは主なプロジェクトの問題に取り組んでおり、あなたにそれを手伝ってもらいたいと思っています。私たちのプロジェクトはポータブル顔認識システムです。選択した境界から面を切り取る必要があります。

これは私たちのコードです:

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);
4

2 に答える 2

1

MATLAB の組み込み関数roipolyを確認できます。境界の座標を取得しx-y、ポリゴン マスクを作成します。このバイナリ マスクをイメージに乗算して、顔を抽出できます。

于 2013-02-25T05:52:13.963 に答える
0

MATLAB で imcrop 関数を使用できます。詳細については、コマンド ウィンドウで「help imcrop」と入力してください。

于 2013-02-25T16:40:33.600 に答える