博客
关于我
项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件
阅读量:798 次
发布时间:2023-04-15

本文共 1617 字,大约阅读时间需要 5 分钟。

功能概述

本项目旨在通过图像处理技术实现文件数据的可视化展示。主要功能包括文件读取、图像处理及显示,具体实现基于OpenCV库进行。

实现步骤

系统从文件读取开始,通过对话框引导用户选择文件,随后将文件数据处理为图像并展示在指定控件中。

控件操作

1. 在对话框中添加按钮控件:将控件拖入至界面,可通过【View】->【TOOLS】中找到。

2. 设置按钮属性:右键点击按钮,选择【属性】,可更改名称、ID等属性。

3. 添加事件响应:右键点击按钮,选择【添加事件处理程序】,选择【BN_CLICKED】类型,完成后编写相应的处理逻辑。

文件读取实现

1. 使用CFileDialog对话框实现文件选择功能:

bool OpenFileDlg::OnInitDialog()  {      CFileDialog dlg(TRUE);      CString file_path;      if (dlg.DoModal() == IDOK)          file_path = dlg.GetPathName();      return TRUE;  }

2. 将CString转换为标准字符串:

USES_CONVERSION;  string file_path(W2A(OpenFilePath));

图像处理与展示

1. 初始化图片控件:在OnInitDialog中添加以下代码:

Rect rect;  GetDlgItem(IDC_STATIC_IMG)->GetWindowRect(&rect);  ScreenToClient(&rect);  GetDlgItem(IDC_STATIC_IMG)->MoveWindow(rect.left, rect.top, 224*4, 126*4, true);  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);

2. 在按钮点击事件中添加图像处理代码:

using namespace cv;  // 获取图像并显示 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);

显示提示信息:在处理完成后使用MessageBox提示用户:

int nRes = MessageBox(_T("数据读取完成!"), _T("数据读取"), MB_OKCANCEL | MB_ICONASTERISK);  if (IDCANCEL == nRes) return;

变量管理建议

1. 定义全局变量:适用于需要在单个文件中使用的变量。

2. 定义类成员变量:适用于多个文件或类之间需要共享的变量。

3. 使用extern关键字:实现文件间变量共享。

转载地址:http://twgfk.baihongyu.com/

你可能感兴趣的文章
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>