作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个皮肤检测算法,该算法使用网络摄像头进行持续、实时的馈送,将其转换为二值图像(基于人脸的肤色),并仅通过 < strike>showing 关注最大的 Blob (使用 CvBlobsLib)。然而,我的代码的输出显示出很多滞后,我不确定要更改什么以使其更快。
这是我的代码(的重要部分):
Mat frame;
IplImage ipl, *res = new IplImage;
CBlobResult blobs;
CBlob *currentBlob;
cvNamedWindow("output");
for(;;){
cap >> frame; //get a new frame from camera
cvtColor(frame, lab, CV_BGR2Lab);//frame now in L*a*b*
inRange(lab, BW_MIN, BW_MAX, bw);//frame now only shows "skin values"...BW_MIN/BW_MAX determined earlier
ipl = bw; //IplImage header
blobs = CBlobResult(&ipl, NULL, 0);
blobs.Filter(blobs, B_EXCLUDE, CBlobGetArea(), B_LESS, 10000);
res = cvCreateImage(cvGetSize(&ipl), IPL_DEPTH_8U, 3);
cvMerge(&ipl, &ipl, &ipl, NULL, res);
cvShowImage("output", res);
if(waitKey(5) >= 0) break;
}
cvDestroyWindow("output");
我将 Mat 转换为 IplImage,因为 CvBlobsLib 仅适用于 IplImage 类型。
有没有人看到我可以使它更快的方法?我最近才听说其他 blob 检测库在实时视频方面做得更好,但我很想知道我的代码中是否忽略了某些内容。
最佳答案
您可以使用 set method 降低相机捕获的分辨率
设置(CV_CAP_PROP_FRAME_WIDTH,双倍宽度)
和
设置(CV_CAP_PROP_FRAME_HEIGHT,双倍高度)
如果您的默认捕获分辨率太高,这会大大提高检测速度。
关于c++ - 使用 cvblobslib 和 opencv(c++) 减少实时二进制黑白网络摄像头馈送的 Blob 检测期间的滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408777/
我正在开发一个小型社交网络项目,该项目将允许用户相互联系,类似于 Facebook 的“ friend ”理念。该网站有它自己的独特功能,使其与众不同,因此请保留有关社交网络市场饱和的评论。 每次用户
我想使用 HTML5 FileApi 将 SWF 读取到 OBJECT(或 EMBED,是否更好?)。 我当前的代码在 Chrome/Iron(唯一也支持 xmlhttprequest v2 Form
我是一名优秀的程序员,十分优秀!