博客
关于我
项目【MFC】总结(三)——图像灰度化/彩色化
阅读量:798 次
发布时间:2023-04-15

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

灰度化与彩色化功能的实现

在本项目中,界面右侧的灰度化与彩色化功能主要涉及图像处理,相较于MFC应用程序开发,这一模块的实现更加侧重于OpenCV技术的运用。

灰度化功能的实现相对简单,主要是对读取的图像进行转换,将其从Vector数据结构转换为OpenCV的Mat格式。具体实现如下:

void VecToMat(const vector
>& Vec, Mat& img) { int rows = Vec.size(); int cols = Vec[0].size(); img = cv::Mat::zeros(Size(cols, rows), CV_16UC1); for (int i = 0; i < rows; ++i) { short* ptmp = img.ptr
(i); for (int j = 0; j < cols; ++j) { if (Vec[i][j] < 0) { ptmp[j] = 0; } else { ptmp[j] = Vec[i][j]; } } }}

灰度化完成后,可直接显示转换后的图像。对于彩色化功能,需要对灰度图像应用伪彩色映射。OpenCV中提供了applyColorMap函数来实现这一功能,常用的颜色映射编号包括2(热色调图)及6(冷色调图)。

彩色化的实现代码如下:

Mat get_img(const vector
>>& csvData_Slip, int res_X, int res_Y, int num, bool color) { int rows = csvData_Slip[0].size(); int cols = csvData_Slip[0][0].size(); Mat img = cv::Mat::zeros(Size(cols, rows), CV_16UC1); for (int i = num; i <= num; ++i) { VecToMat(csvData_Slip[i], img); img.convertTo(img, CV_8U, 1, 0); if (color) { cv::applyColorMap(img, img, 2); // 2、6 伪彩色图 } } return img;}

applyColorMap函数的参数解释:

  • img:目标图像。
  • result:应用颜色映射后的图像。
  • color:颜色映射编号。

需要注意的是,该实现代码中包含了许多未声明的全局变量,应根据实际项目需求进行补充和调整。

灰度化与彩色化功能的整体实现流程如下:

  • 调用VecToMat函数将Vector数据转换为OpenCV Mat格式。
  • 根据color标志选择是否应用颜色映射。
  • 调整图像大小以适应显示窗口,并进行比例缩放。
  • 整个灰度化与彩色化功能的核心代码结构如上所述,具体实现细节需根据实际应用需求进行补充和优化。

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

    你可能感兴趣的文章
    MySQL FEDERATED 提示
    查看>>
    mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
    查看>>
    Mysql group by
    查看>>
    MySQL I 有福啦,窗口函数大大提高了取数的效率!
    查看>>
    mysql id自动增长 初始值 Mysql重置auto_increment初始值
    查看>>
    MySQL in 太多过慢的 3 种解决方案
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    mysql problems
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    mysql workbench6.3.5_MySQL Workbench
    查看>>
    MySQL Workbench安装教程以及菜单汉化
    查看>>