项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件
功能
点击【打开文件】按钮,选择文件打开,将数据处理为图像(默认处理第10帧开始),然后将图像显示在图片控件。
注:整个项目有关图像处理的操作基本用OpenCV实现。
读取文件实现
1、添加按钮控件
在窗口界面,将控件拖进即可,控件在【view】->【TOOL Box】中。
2、鼠标右击更改点击【属性】更改属性
可更改:
名称(Caption)
ID(最好按功能名更改):如打开文件可命名为IDC_BUTTON_OPENFILE。
其他按自己的需求
3、添加点击响应事件
选中控件右击——>选择【添加事件处理程序】——》选择【BN_CLICKED】。如下:
4、会自动跳转至处理程序,然后根据实际需求编写程序
这里是有用的关键代码,在此记录一下
- 读取文件对话框代码:
///TRUE为OPEN对话框,FALSE为SAVE AS对话框 CFileDialog dlg(TRUE);CString OpenFilePath;if (dlg.DoModal() == IDOK)OpenFilePath = dlg.GetPathName(); //获取文件路径OnPaint();
- CString转string(c++的接口用的string)
//CString转stringUSES_CONVERSION;string file_path(W2A(OpenFilePath));
- 在图片控件显示图像(OpenCV)
首先,在BOOL XXXXXXDlg::OnInitDialog()函数中加入以下窗口初始化代码:
//注:224*4, 126*4是窗口尺寸,可以更改
CRect rect;GetDlgItem(IDC_STATIC_IMG)->GetWindowRect(&rect); //IDC_WAVE_DRAW为对应Picture Control的ID ScreenToClient(&rect);GetDlgItem(IDC_STATIC_IMG)->MoveWindow(rect.left, rect.top, 224*4, 126*4, true); //固定Picture Control控件的大小namedWindow("view",CV_WINDOW_AUTOSIZE);HWND hWnd = (HWND)cvGetWindowHandle("view"); //创建显示窗口HWND hParent = ::GetParent(hWnd); //父窗口::SetParent(hWnd, GetDlgItem(IDC_STATIC_IMG)->m_hWnd); ::ShowWindow(hParent, SW_HIDE);
然后,在按钮单击事件函数中添加代码:
//获取图像并显示img = get_img(csvData_Slip, 1920, 1080, current_frame-1, Color);//这一句是我项目中的获取图像函数,要做更改CRect rect;GetDlgItem(IDC_STATIC_IMG)->GetClientRect(&rect); //获取图片控件窗口Rect dst(rect.left, rect.top, rect.right, rect.bottom); //窗口位置resize(img, current_img, cv::Size(rect.Width(), rect.Height())); //适应控件窗口大小imshow("view", current_img); //显示
- 参数更新
一定要在代码段前后加上这两句,不然尤其编辑框的参数没办法更新显示!
//数据更新UpdateData(TRUE);/代码段/UpdateData(FALSE);
- 弹出消息提示对话框
// 显示消息对话框 ,参数按需求更改
nRes = MessageBox(_T("数据读取完成!"), _T("数据读取"), MB_OKCANCEL | MB_ICONASTERISK);
// 判断消息对话框返回值。如果为IDCANCEL就return,否则继续向下执行
if (IDCANCEL == nRes)return;
MessageBox的参数可以参考:http://www.jizhuomi.com/software/171.html
- 关于MFC中定义全局变量和类成员变量的问题
1、当我们需要在单个整个文件用到某个变量时,需要将它定义为全局变量,只需要在对话框Cpp文件的开头申明即可。
2、当我们有好几个文件或者几个类之间需要相互调用的话,就需要把变量定义为类的公共成员变量,在对话框头文件添加即可。
3、在文件1调用文件2中的全局变量,还有一种方式就是在文件1中将变量声明为 extern,这样就可以自动在其他文件查找这个变量。
END!
项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件相关推荐
- 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- openCsv读取csv文件
https://blog.csdn.net/cat_book_milk/article/details/52953786 Java读取csv文件 https://blog.csdn.net/galen ...
- 有字符csv文件导入matlab_Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件...
CSV,逗号分开的文件,如果能快速的读取这些文件中的数据,无疑会帮助我们解决很多问题. 1. 只有数据的CSV文件,CSV file that includes only numbers. As an ...
- python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory
项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...
- python csv读取-Python读取csv文件(详解版,看了无师自通)
前面程序展示的数据都是直接通过程序给出的,但实际应用可能需要展示不同来源(比如文件.网络).不同格式(比如 csv.JSON)的数据,这些数据可能有部分是损坏的,因此程序需要对这些数据进行处理. cs ...
- python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
前面程序展示的数据都是直接通过程序给出的,但实际应用可能需要展示不同来源(比如文件.网络).不同格式(比如 csv.JSON)的数据,这些数据可能有部分是损坏的,因此程序需要对这些数据进行处理. cs ...
- Python读取CSV文件画折线图
首先,我们先导入需要的模块,然后读取CSV文件的数据,在折线图上画出"Third"这一列的数据的折线图 画出的图表结果: import pandas as pd import ma ...
- python 批量读取csv_python批量读取csv文件
请问大神怎样用python批量读取文件夹下的文件? python如何读取CSV文件一部分数据 Python如何批量读取CSV文件并写入TXT? 如何用python把多个csv文件数据处理后汇总到新cs ...
- Python读取csv文件(详解版,看了无师自通)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
最新文章
- Latex 添加多张图片技巧说明
- 如何下载和离线安装Chrome的CRX扩展文件包
- pycharm提示:Class names should use CamelCase convention(类名命名应遵守驼峰命名约定)
- UVA 10334 Ray Through Glasses
- 【python数字信号处理】——循环卷积(也叫圆圈卷积)
- C# 在PC上的通过蓝牙(bluetooth)发送数据到手机
- Ueditor setContent内容含引号显示异常
- 记一个tcp udp测试工具ethrc
- Elasticsearch Trying to create too many scroll contexts. Must be less than or equal to: [500]
- Failed to execute vcredist_x64.exe
- 2020年区块链行业十大趋势
- DAY41:Cobalt Strike 工具使用
- 优化-处理大量定时任务的思路
- mac安装homebrew + git + nodejs
- 求无限循环小数的循环节
- 编辑为什么建议转投_SCI编辑建议转投容易录用吗
- ElasticSearch是什么?和Solr有什么区别?
- Python 使用pip安装OpenCV2
- (附源码)SSM学校旧书交易网站JAVA计算机毕业设计项目
- ps不显示安装字体解决办法
热门文章
- NBNet: Noise Basis Learning for Image Denoising with Subspace Projection
- win7下简单隐藏文件方法
- HTMLCollection NodeList
- LeetCode 221. Maximal Square (最大正方形)
- Qt FTP地址下载中文乱码问题
- 用verilog 实现8bit数据的并串转换
- 直播html接口,直播接口文档.html
- 服装行业进销存管理系统数据处理的三个方向
- 中国山脉分布图和中国地形图
- 信息论复习笔记(1):信息熵、条件熵,联合熵,互信息、交叉熵,相对熵