MFC+OpenCV3.3.1+显示图像视频+水位识别

 

参考文档:

opencv2在MFC对话框控件中显示图片播放视频
https://blog.csdn.net/m0_37901643/article/details/73565168

VS2013 / MFC + OpenCV 2.4.9实现视频的播放暂停和结束
https://blog.csdn.net/bbzz2/article/details/52808480

opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
https://www.cnblogs.com/lidabo/p/3437587.html



opencv截取图像中某一区域的方法
https://blog.csdn.net/sjtuxx_lee/article/details/77119398

水位识别-资料

基于图像处理(HOG)与数据分布特征的水位识别
https://www.jianshu.com/p/077d80422c11

opencv学习笔记(三十三)多匹配——查找多个对象
https://blog.csdn.net/u014751607/article/details/60953994

opencv学习_11 (模板匹配(包括单模板和多模板))
https://blog.csdn.net/lu597203933/article/details/14548523#

首先MFC控件的使用

Picture控件

edit控件的使用

 

edit控件设置-可以显示多行.jpg

edit控件设置-可以显示底部水平滑动条.jpg

然后通过代码,就可以将信息,写入edit,重点是

\r\n
		//信息显示
		CString str_time;
		CTime tm;
		//获取系统时间 
		tm = CTime::GetCurrentTime();
		str_time = tm.Format("现在时间是%Y年%m月%d日 %X \r\n");
		CString str_success = L"图像载入成功 \r\n";
		CString str_fileaPath = str_time + str_success + L"载入路径:" + strFilePath + L"\r\n";
		GetDlgItem(IDC_MESSAGE_EDIT)->SetWindowText(str_fileaPath);

效果如图:

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!对于在Qt中使用OpenCV控件并在视频图像显示之前的问题,可以按照以下步骤进行操作: 1. 首先,确保已经正确地集成了Qt和OpenCV库到您的项目中。 2. 创建一个Qt窗口应用程序,并在UI设计中添加一个控件用于显示视频图像,例如一个QLabel。 3. 在您的代码中,使用OpenCV读取视频文件或者从摄像头捕获视频帧。 4. 将捕获到的视频帧转换为Qt图像格式,例如QImage。 5. 将转换后的图像设置给QLabel控件进行显示。 下面是一些示例代码,帮助您理解如何在Qt中实现这个功能: ```cpp #include <QApplication> #include <QLabel> #include <QTimer> #include <opencv2/opencv.hpp> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建Qt窗口和控件 QLabel label; label.show(); cv::VideoCapture capture("path_to_video_file"); // 替换为您的视频文件路径或者摄像头索引 QTimer timer; QObject::connect(&timer, &QTimer::timeout, [&]() { cv::Mat frame; capture >> frame; if (!frame.empty()) { // 将OpenCV的Mat转换为Qt的QImage QImage image(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888); image = image.rgbSwapped(); // 如果图像是BGR格式,需要进行颜色通道交换 // 将图像设置给QLabel控件进行显示 label.setPixmap(QPixmap::fromImage(image).scaled(label.size(), Qt::KeepAspectRatio)); } }); // 设置定时器的时间间隔,控制视频帧的刷新率 timer.setInterval(33); // 30帧/秒 // 启动定时器 timer.start(); return app.exec(); } ``` 请注意,以上代码仅为示例,您需要根据您的实际需求进行调整和扩展。希望对您有帮助!如有任何问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值