概述
在使用matlab的vision.CascadeObjectDetector()等函数时,出现了如下具体的错误:
Error using images.internal.imageDisplayParsePVPairs (line 125)
Invalid input arguments.
Error in images.internal.imageDisplayParseInputs (line 69)
[common_args,specific_args] =images.internal.imageDisplayParsePVPairs(varargin{:});
Error in imshow (line 245)
images.internal.imageDisplayParseInputs({‘Parent’,‘Border’,‘Reduce’},preparsed_varargin{:});
Error in imcrop>parseInputs (line 252)
imshow(a,cm);
Error in imcrop (line 93)
[x,y,a,cm,spatial_rect,h_image,placement_cancelled] =
parseInputs(varargin{:});
Error in findOutWhyWrong (line 24)
faceout1=imcrop(I,bbox);
我的程序功能是在人脸表情数据集上利用CascadeObjectDetector(该函数利用了Viola-Jones算法进行人来能检测)函数裁剪出人脸表情,除去非表情之外的干扰因素。然而输入某些图片时却出现了文章开头所示的错误,原因是这些图片被程序识别出了多个“人脸”,导致使用imcrop裁剪功能函数时出错。
我的解决办法:在函数
faceDetector = vision.CascadeObjectDetector();
中加入参数'MinSize',[50 50]
,即
faceDetector = vision.CascadeObjectDetector('MinSize',[50 50]);
参数'MinSize',[50 50]
意思是检测到的人脸大小最小范围是50×50(单位:像素),小于50×50的“人脸”被忽略。参数根据实际情况大概地选取吧。加入参数后的检测结果:
此时再使用裁剪函数imcrop时系统不再报错。
关于CascadeObjectDetector函数的函数详细介绍可访问:mark work对vision.CascadeObjectDetector的说明
文档是英文的,可以选择chrome浏览器翻译(需要翻越长城)
最后
以上就是欢呼太阳为你收集整理的解决matlab的:错误使用 images.internal.imageDisplayParsePVPairs (line 125) 输入参数无效问题的全部内容,希望文章能够帮你解决解决matlab的:错误使用 images.internal.imageDisplayParsePVPairs (line 125) 输入参数无效问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复