网站w3c标准,采集网站文章,网页打不开qq可以上qq,现在什么网页游戏好玩【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 前面我们测试和练习的时候#xff0c;大部分情况下都是利用图像进行测试的#xff0c;但是实际情况下#xff0c;或者准确一点说#xff0c;工…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 前面我们测试和练习的时候大部分情况下都是利用图像进行测试的但是实际情况下或者准确一点说工业场景下面大部分测试都是通过工业摄像头实时进行处理的。所以这里面就会涉及到实时视频采集的问题。然后尽管一开始的时候我们是希望可以在qmacvisual里面添加必要的代码然后实现视频的输出。 实际运行中发现如果这样做修改的代码较多。或者说这么做可能会破坏之前代码的稳定性有点得不偿失即使要修改可以后面慢慢修改。考虑再三还是使用插件的方法来处理这样比较妥当一点。最最主要的是不需要修改作者之前的代码这样运行上面容易debug很多。 1、使用笔记本自带的摄像头 目前我们手上没有相关的工业相机虽然将来这部分是少不了的但是目前来说还是能省一点算一点。所以我们打算直接用opencv访问笔记本的摄像头。首先可以编写对应的python代码
import cv2cap cv2.VideoCapture(0)
if not cap.isOpened():print(Unable to open the camera)exit()while True:ret, frame cap.read()if not ret:print(Unable to get frame)breakcv2.imshow(frame, frame)if cv2.waitKey(1) 0xFF ord(q):breakcap.release()
cv2.destroyAllWindows() 2、创建工程和创建流程 创建工程和创建流程是使用qmacvisual的前提做好了这一点其他的就比较容易了。 3、修改ExtLibraryCase代码 大家修改代码的时候千万不要修改ExtensionLibrary这个工程。简单地说前者是插件后者这是插件的容器而已。修改的函数主要也是frmExtLibraryCase::RunToolPro这个函数。首先我们需要函数外定义一下全局变量
#include opencv2/opencv.hpp
static int imgState 0;
cv::VideoCapture* pHandle NULL; // (*pHandle).release() 接着注释掉RunToolPro里面的部分函数内容直接替换上我们自定义的摄像头采集函数就可以了这一步不复杂和python里面的流程是非常类似的
if (imgState 0)
{imgState 1;pHandle new cv::VideoCapture(0);
}(*pHandle) dstImage; 这个dstImage就是最终插件送出去的结果。 4、测试和验证 因为插件本身需要一个输入图像虽然从camera读取的角度来说是根本不需要这个输入的但是这也是没办法。所以要进行测试和验证最起码要三个插件第一个是图像读取第二个是插件第三个是图像显示。 整个流程选择循环模式就可以看到对应的视频流效果了。 当然最终部署的时候肯定还是工业摄像头为主这种方法只是验证了camera视频流获取的一个可行性。如果说有缺陷的话就是一开始的时候浪费了十几ms时间。