opencv窗口绑定QT控件(QLabel)

opencv绑定QT控件的详细介绍如下:

1 利用opencv自带函数namedWindow创建显示窗口,这里显示模式设置为WINDOW_NORMAL

2 获取opencv自带窗口的窗口句柄(这里使用win32的API获取到窗口句柄, 需要引包,项目文件.pro里也需要引用)

3 然后将QT控件设置为父对象进行绑定(这里以QLabel为例)

4 将opencv窗口尺寸设置与QLabel尺寸一样保证图片显示完全。

一 项目文件内引用

QT   += winextras  //需要使用winAPI来获取opencv窗口句柄

二 头文件引用

#include<QtWinExtras/QtWinExtras>   //winAPI,需要使用它来获取opencv窗口句柄
#include<highgui/highgui_c.h>   //opencv4.0以后需要引用

三 主代码

    //利用窗口句柄绑定窗口,引用WIN API,所有头文件中不能使用cv命名空间,因为winApi也有一个cv命名空间,会冲突
    namedWindow("src1",WINDOW_NORMAL);//创建窗口
    HWND hwnd1=(HWND)cvGetWindowHandle("src1");//opencv4.0以后需要引入highgui_c包,QT需要引#include<QtWinExtras/QtWinExtras>包
    HWND hparent=GetParent(hwnd1);//获取父窗口
    SetParent(hwnd1,(HWND)this->ui->testLabel->winId());//设置父窗口
    ShowWindow(hparent,SW_HIDE);//显示窗口,之前的设置为隐藏
    resizeWindow("src1",Size(670,560));//将尺寸设置与QLabel一致
    

这样窗口就不会跑来跑去了,需要注意的是利用窗口句柄绑定窗口,引用WIN API,所有头文件中不能使用cv命名空间,因为winApi也有一个cv命名空间,会冲突。头文件里可以用cv::Mat的方式避免使用cv命名空间~

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值