【OpenCV用imshow显示图像到指定窗口内】

这篇博客介绍了如何使用OpenCV的imshow函数将图像显示在GUI界面的Picture控件中,而非弹出独立窗口。首先通过namedWindow创建窗口并获取其句柄,然后使用SetParent函数将其设置为Picture控件的子窗口。这种方法使得图像能够无缝集成到应用程序界面中,提供更好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV显示图像用imshow函数,会弹出图像显示窗口
但有时我们希望图像能显示到我们界面的某个窗口内,可以这样做:
1 界面上放一个Picture控件,用来未来显示图像用,ID设为IDC_PIC(举例)
2 定义一个字符串符号(不是必须,只是这样方便,而且不容易出错)

#define WND_NAME	"myimg"

3 在程序初始化时:

namedWindow(WND_NAME);
HWND hWnd = (HWND)cvGetWindowHandle(WND_NAME);
::SetParent(hWnd, GetDlgItem(IDC_PIC)->m_hWnd);

解释:namedWindow创建一个指定名称的窗口,然后cvGetWindowHandle获取刚创建这个窗口的句柄,SetParent将这个新创建的窗口设置为想要显示窗口的子窗口,最终效果实际上就是把imshow窗口镶嵌进了指定的Picture控件里

4 要显示图像时,调用:

imshow(WND_NAME, img);
//img为Mat图像

注:cvGetWindowHandle函数需要添加头文件

#include "opencv2\highgui\highgui_c.h"
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值