我是靠谱客的博主 欢呼太阳,最近开发中收集的这篇文章主要介绍解决matlab的:错误使用 images.internal.imageDisplayParsePVPairs (line 125) 输入参数无效问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用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) 输入参数无效问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部