当前位置:   article > 正文

Windows下使用海康相机SDK获取图像并在Qt显示_海康mvs

海康mvs

点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,可以点个在看,让它可以帮助到更多同志

一、一些基础信息

MVS 版本   V3.1.0

SDK  版本:V3.2.0.3

1. 库与头文件位置

安装完MVS软件后,会有相机SDK的一些资料,如下,是动态库的资料。

2. 使用MVS软件设置相机IP

连接相机电源线与网线后,通过MVS软件设置相机IP。

3. 使用MVS显示相机图像

成功连接相机后,先设置触发模式为【Off】;再点击左上角开始按钮,之后相机开始获取图像。之后调节相机的焦距、曝光等参数,使图像清晰,如下图

4. 通过以上设置,完成了对相机的设置及测试。之后关闭软件,准备使用相机的SDK来获取图像。对于刚开始接触相机的同志,一些术语比较陌生,尤其是之后显示图像时的一些参数,开始时我也很蒙圈,现在也不是很懂,只是把效果做出来了,如果能给初学的同志提供微不足道的帮助,那真是太好了。

二、Qt 使用SDK 显示图像

恰好有黑白相机与彩色相机,所以就把这两个合二为一,全部测试了。

获取图像数据是使用SDK中的回调函数方式完成的,优点是无需自己控制获取频率,图像获取完成后自动调用。

Qt 显示图像使用的是QLabel  setPixmap(QImage),QImage将图像字节数据根据参数转为图像给setPixmap。

1. 使用SDK操作相机流程

1> 初始化相机

具体流程可直接参考MVS里面的SDK接口手册,我在这里简单说下流程。

        ①枚举子网内指定的传输协议对应的所有设备

        ②选择查找到的第一台在线设备,创建设备句柄

        ③连接设备

        ④获取图像的宽和高

        ⑤设置触发方式为Off

2> 注册回调函数获取图像

    由于获取彩色相机与黑白相机的回调函数不同,这里做了区分。通过获取相机型号,判断特定字符来完成的。

  1. if(m_isColor)
  2.     {
  3.         int ret = MV_CC_RegisterImageCallBackForRGB(handle,
  4.                        CameraWidget::getCameraImageCallback,
  5.                                                     this);
  6.         if(MV_OK != ret)
  7.             qDebug() << "=======faild =======" ;
  8.     }
  9.     else
  10.         MV_CC_RegisterImageCallBackEx(handle,
  11.                          CameraWidget::getCameraImageCallback,
  12. this);

3> 控制相机开始取图

只有相机开始取图后,才会进入回调函数,否则是不会进入回调函数的。

MV_CC_StartGrabbing(handle);

2. 效果如下

彩色图像显示,截图下方是相机型号与序列号

黑白图像效果

三、小结

希望通过这篇文章能帮到刚开始入门相机的同志。

在获取彩色图像时,使用的回调函数获取的RGB24的图像,此时为图像数据分配空间应是 图像宽度*图像高度*3;获取黑白图像对应分配数据空间是图像宽度*图像高度。

彩色图像的QImage为QImage::Format_RGB888

QImage((uchar*)mpData,m_imageWidth,m_imageHeight,QImage::Format_RGB888);

黑白图像的QImage为QImage::Format_Indexed8

QImage((uchar*)mpData,m_imageWidth,m_imageHeight,QImage::Format_Indexed8);

需要完整Qt 工程可在公众号后台留言。

Linux下获取获取海康相机图片环境搭建介绍:

2_linux海康工业相机环境搭建与测试

            

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/754074
推荐阅读
相关标签
  

闽ICP备14008679号