мы имеем дело с проблемой в нашем основном проекте, и мы хотели бы, чтобы вы нам помогли. Наш проект - Портативная система распознавания лиц. Нам нужно вырезать грань с выбранной границы.Как отрезать выбранную часть от изображения в Matlab?
Это наш код:
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);
это код, который мы уже сделали ... img = imread ('10 .jpg '); для i = 1: размер (img, 1) для j = 1: размер (img, 2) R = img (i, j, 1); G = img (i, j, 2); B = img (i, j, 3); , если (R> 92 && G> 40 && B> 20) v = [R, G, B]; if (abs (R-G)> 15 && R> G && R> B) final_image (i, j) = 1; конца конца конца конца imshow (final_image) rgbInputImage = IMG; % Оттенки серого до двоичного. binaryImage = im2bw (final_image, 0.6); % Заполнение отверстий. binaryImage = imfill (binaryImage, 'hole'); binaryImage = bwareaopen (binaryImage, 1890); фигура, imshow (binaryImage); labeledImage = bwlabel (binaryImage, 8); – user2106151
blobMeasurements = regionprops (labeledImage, final_image, 'all'); номерOfPeople = размер (blobMeasurements, 1) % номерOfPeople = 1; imagesc (rgbInputImage); title ('Контуры, из bwboundaries()'); % площадь оси; держаться; границ = bwboundaries (binaryImage); для k = 1: numberOfPeople thisBoundary = границы {k}; plot (thisBoundary (:, 2), thisBoundary (:, 1), 'g', 'LineWidth', 2); конец удерживайте; imagesc (rgbInputImage); держаться; название («Оригинал с ограничительными рамками»); % fprintf (1, 'Blob # x1 x2 y1 y2 \ n'); – user2106151
для k = 1: numberOfPeople x1 = thisBlobsBox (1); y1 = thisBlobsBox (2); x2 = x1 + thisBlobsBox (3); y2 = y1 + thisBlobsBox (4); x = [x1 x2 x2 x1 x1]; y = [y1 y1 y2 y2 y1]; plot (x, y, 'LineWidth', 2); конец рисунок, imshow (labeledImage); B = bwboundaries (binaryImage); imshow (B); текст (10,10, strcat ('\ color {green} Найденные объекты:', num2str (длина (B)))) удерживайте для k = 1: длина (B) border = B {k}; plot (граница (:, 2), граница (:, 1), 'g', 'LineWidth', 0.2) end – user2106151