2016-04-07 37 views
-1
FDetect = vision.CascadeObjectDetector; 

%// Read the input image 

I = imread('face.jpg'); 

%// Returns Bounding Box values based on number of objects 
BB = step(FDetect,I); 

figure, 
imshow(I); 
hold on 
for i = 1:size(BB,1) 
    rectangle('Position',BB(i,:),'LineWidth',2.5,'LineStyle','','EdgeColor','r'); 
end 
title('Face Detection'); 
hold off; 

filtreyi vermek:Yüz algılama ve filtreyi

E = imerode(I,strel('square',5)); 

figure, imshow(E); 

Benim sorun yalnızca dikdörtgen yüz alanının İÇİNDE filtreleri vermek nasıl.

enter image description here

cevap

1

Sen sınırlayıcı kutunun içinde resminizin hemen bölgeyi ayıklamak ve sonra sadece o kısmı üzerinde imerode operasyonu uygulamak isteyecektir.

Sınırlayıcı Kutu [x, y, width, height] biçimindedir. Bunu piksellere dönüştürmemiz gerekecek.

%// Ensure that we are working with integers. 
BB(k,:) = round(BB(k,:)); 

%// Sample all rows and columns within this bounding box 
rows = BB(k,2):sum(BB(k,[2 4])) 
cols = BB(k,1):sum(BB(k,[1 3])) 

%// Apply the imerode operation on just these pixels 
I(rows,cols) = imerode(I(rows,cols), strel('square', 5)); 
İlgili konular