博客
关于我
OpenCV4(6)-LookUpTable(LUT)查找表(C++,Python,JS)
阅读量:518 次
发布时间:2019-03-08

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

OpenCV 导引 - 用颜色映射展示幅度数据

在 OpenCV 开源库中,applyColorMap 函数是一款实用工具,可用来将灰度图像转换为彩色图像,通过查找表(LUT,Lookup Table)实现颜色映射。这种方法非常有用,尤其是在处理温度、高度、压力或密度等单值信息时,可通过彩色编码更直观地展示数据。

以下是几个常用的颜色映射类型:

1. 常用颜色映射类型

OpenCV 提供了多种颜色映射类型,可供应用:

  • COLORMAP_AUTUMN:秋色渐变
  • COLORMAP_BONE:鱼骨色
  • COLORMAP_JET:热带风场
  • COLORMAP_WINTER:冬季色方案
  • COLORMAP_RAINBOW:彩虹色
  • COLORMAP_OCEAN:海洋蓝
  • COLORMAP_SUMMER:夏日色
  • COLORMAP_SPRING:春色
  • COLORMAP_COOL:冰冷色
  • COLORMAP_HSV:色调、值、饱和度
  • COLORMAP_PINK:粉色
  • COLORMAP_HOT:热色
  • COLORMAP_PARULA:霓虹紫
  • COLORMAP_MAGMA:地质红
  • COLORMAP_INFERNO:火焰红
  • COLORMAP_PLASMA:荧光紫
  • COLORMAP_VIRIDIS:青色
  • COLORMAP_CIVIDIS:洋红色
  • COLORMAP_TWILIGHT:暮色
  • COLORMAP_TWILIGHT_SHIFTED:偏移暮色

根据需求选择相应的颜色映射类型,便可实现不同的视觉效果。

2. C++ 实现示例

代码示例:

#include "opencv2/opencv.hpp"#include "iostream"using namespace std;using namespace cv;void colorMapDemo() {    // 读取图像    Mat src = imread("girl.jpg");    if (src.empty()) {        cout << "加载图像失败" << endl;        return;    }        // 应用颜色映射    Mat dst;    applyColorMap(src, dst, COLORMAP_PINK); // 传入彩色映射类型        // 显示结果    namedWindow("colorMap", WINDOW_AUTOSIZE);    imshow("colorMap", dst);        // 按任意键退出    waitKey(0);}

步骤说明:

  • 包含 OpenCV 头文件。
  • 读取目标图像。
  • 检查图像是否加载成功。
  • 创建一个输出图像对象。
  • 应用applyColorMap,使用COLORMAP_PINK生成彩色图像。
  • 创建窗口并显示结果。
  • 等待用户输入键退出程序。
  • 代码功能:

    • applyColorMap 也就是颜色映射函数,通过查找表将灰度图像转换为彩色图像。
    • 输入图像和彩色映射类型即可完成转换。

    3. Python 实现示例

    代码示例:

    import cv2 as cv# 查看 OpenCV 版本print(cv.__version__)# 读取图像src = cv.imread("girl.jpg")cv.imshow("输入图像", src)# 设置颜色映射类型# 以下是常用类型示例color_mapAutumn = cv.COLORMAP_AUTUMNcolor_mapBone = cv.COLORMAP_BONE# ...(其他类型)color_mapPink = cv.COLORMAP_PINK# 应用颜色映射dst = cv.applyColorMap(src, cv.COLORMAP_SUMMER)  # 传入所需类型cv.imshow("输出图像", dst)# 等待键盘输入并释放cv.waitKey(0)cv.destroyAllWindows()

    步骤说明:

  • 导入 OpenCV 库并作为 cv 名字访问。
  • 加载图像文件。
  • 显示原始图像。
  • 选择适当的颜色映射类型。
  • 调用applyColorMap 实现颜色映射。
  • 显示变换后的图像。
  • 等待程序结束。
  • 代码功能:

    • applyColorMap 转换灰度图像到彩色图像,选定不同的映射类型可获取不同的颜色方案。

    4. JavaScript 实现 (需要注意:OpenCV.js 不支持 applyColorMap)

    对于 JavaScript 用户,由于 OpenCV.js 4.5.0 版本尚未支持 applyColorMap 函数,这意味着将无法直接调用该函数。目前,JS 用户可以安装更高版本的 OpenCV.js 或查询开源社区以获取替代方案。

    =ैं।

    5. 结果展示

    以下是使用上述代码示例可能生成的典型结果:

    C++ 输出结果

    • 原图: girl.jpg
    • 颜色映射输出: 使用 COLORMAP_PINK 显示明亮的粉色渐变。

    Python 输出结果

    • 原图: girl.jpg
    • 颜色映射输出: 使用 COLORMAP_SUMMER 显示夏日调色,展现多彩的高温区域。

    JS 尝试

    OpenCV.js 4.5.0 中暂不支持 applyColorMap。当前版本建议使用下列方法替代:

  • 安装 OpenCV.js 更高版本或提问社区获取最新信息。
  • 使用其他图像处理函数或调用 C++ API(通过接口)。
  • 注意事项

    • 图像类型: 确保输入图像为灰度图像,颜色映射才生效。
    • 查找表 (LUT): OpenCV 使用查找表实现颜色映射,可根据需求调整颜色渐变细节。
    • 版本兼容性: 各语言版本 OpenCV 的函数支持可能存在差异,需确认所用版本是否支持目标功能。

    通过选择合适的颜色映射类型和正确使用 applyColorMap 函数,可以灵活地展示数据信息,满足不同场景的可视化需求。

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

    你可能感兴趣的文章
    LeetCode 76. 最小覆盖子串
    查看>>
    架构 -- rsync补充02
    查看>>
    shell基础 - 03
    查看>>
    第七课时logback日志框架介绍及应用
    查看>>
    第十一课时通讯录列表前后端调用
    查看>>
    java注解完整实例
    查看>>
    6.4 jmeter基础知识--变量
    查看>>
    6.6 jmeter基础—系统日志
    查看>>
    10 测试脚本结果分析
    查看>>
    先验概率,后验概率,似然函数,贝叶斯公式
    查看>>
    python初学者容易犯的错误
    查看>>
    github资源下载assets中的各种格式
    查看>>
    ubuntu中添加截图和录屏快捷键
    查看>>
    基于libVLC的视频播放器之四:直接使用libVLC
    查看>>
    Qt5下OpenGL程序的新写法
    查看>>
    FFmpeg:‘UINT64_C‘ was not declared in ths scope
    查看>>
    Qt在pro中管理多个子项目(子工程)
    查看>>
    error LNK2019:无法解析的外部符号_imp_CryptAcquireContextA@20
    查看>>
    error LNK2001:无法解析的外部符号_imp_timeGetTime@0
    查看>>
    JWPlayer 7的正确使用方法及Flash plugin failed to load解决方法
    查看>>