使用matlab进行人脸检测

时间:2016-04-15 09:36:52

标签: matlab image-processing

试过这段代码

A=imread('1.jpg');


FaceDetector=vision.CascadeObjectDetector();


BBOX=step(FaceDetector,A);


B=insertObjectAnnotation(A,'rectangle',BBOX,'Face');


imshow(B),title('Detected Faces');


n=size(BBOX,1);

str_n=num2str(n);

str=strcat('number of detected faces are ',str_n);

disp(str);

此错误显示在我身上

未定义函数'insertObjectAnnotation'用于'uint8'类型的输入参数。

Detected_faces出错(第9行) B = insertObjectAnnotation(A, '矩形',BBOX, '脸');

1 个答案:

答案 0 :(得分:1)

您只需更改图片类型即可。 类型必须是uint8和" insertObjectAnnotation"功能只需要不同的输入。

请尝试:

A=imread('1.jpg');


FaceDetector=vision.CascadeObjectDetector();


BBOX=step(FaceDetector,A);


B=insertObjectAnnotation(rgb2gray(A),'rectangle',BBOX,'Face');

实际上,我试过这个:

I = imread('coins.png');

FaceDetector=vision.CascadeObjectDetector();


BBOX=step(FaceDetector,I);


B=insertObjectAnnotation(I,'rectangle',BBOX,'Face');

我是uint8,它有效。

使用您的数据集,它工作得很好。请参见图像输出。enter image description here