OPENCV显示视频窗口去掉标题栏及图像抓取

参照大侠的文章,自己经过测试与简化,形成如下内容。

参考文章地址https://blog.csdn.net/qq_40094716/article/details/120501356

经过测试,下述代码有效,能够确保视频处于无边框状态

//全局变量
BOOL bCaptured = 0;
BOOL bExit = 0;
cv::VideoCapture cap;
Mat frame;

// ----------- 操作函数
void CameraPrepare()
{
	bExit = 0;
}

void CloseCamera()
{
	bExit = 1;
}

void CaptureGraph()
{
	bCaptured = 1;
}

//----------- 主要函数
int openTheCamera(HWND hWnd,int idx)//开启摄像头,hwnd父窗口句柄,idx摄像头索引号
{
	int kk=0;
	cap.open(idx);
	if (!cap.isOpened())
	{
		TRACE1("Error: openCamera() failed to open camera %d\n",idx);
		return -1;
	}
	cv::namedWindow("tod",0);
	HWND hd = FindWindowW(0,L"tod");

	::SetWindowPos(hd,HWND_TOPMOST,700,200,600,500,SWP_NOZORDER);
	::SetWindowLong(hd,GWL_STYLE,GetWindowLong(hd, GWL_EXSTYLE)|WS_EX_TOPMOST);
	::SetWindowPos(hd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
	ShowWindow(hd,SW_SHOW);

	while (true)
	{
		cap.read(frame);
		cv::imshow("tod", frame);

		if(bExit || (waitKey(5) >= 0))//监听键盘,按任意键退出,或按钮退出
		{
			cv::destroyWindow("tod");
			break;
		}

		if(bCaptured)//抓取视频存图,并发送通知
		{
			if(imwrite("001.png",frame))
				::PostMessageW(hWnd,5000,0,0);
			bCaptured = 0;
		}
	}
	cap.release();
	return 0;
}

如下图所示,视频窗口当中的标题栏之类的已经去掉了,也没有边框了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值