博客
关于我
项目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 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
mysql 四种存储引擎
查看>>
MySQL 基础模块的面试题总结
查看>>
MySQL 备份 Xtrabackup
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>