OpenCv 006---LUT的作用与用法

摘要:
˂![autumn](pics/colormaps/colorscale_autumn.jpg)COLORMAP_BONE=1,//!˂![bone](pics/colormaps/colorscale_bone.jpg)COLORMAP_JET=2,//!˂![jet](pics/colormaps/colorscale_jet.jpg)COLORMAP_WINTER=3,//!˂![winter](pics/colormaps/colorscale_winter.jpg)COLORMAP_RAINBOW=4,//!˂![rainbow](pics/colormaps/colorscale_rainbow.jpg)COLORMAP_OCEAN=5,//!˂![ocean](pics/colormaps/colorscale_ocean.jpg)COLORMAP_SUMMER=6,//!˂![summer](pics/colormaps/colorscale_summer.jpg)COLORMAP_SPRING=7,//!˂![spring](pics/colormaps/colorscale_spring.jpg)COLORMAP_COOL=8,//!˂![cool](pics/colormaps/colorscale_cool.jpg)COLORMAP_HSV=9,//!˂![HSV](pics/colormaps/colorscale_hsv.jpg)COLORMAP_PINK=10,//!˂![pink](pics/colormaps/colorscale_pink.jpg)COLORMAP_HOT=11,//!˂![hot](pics/colormaps/colorscale_hot.jpg)COLORMAP_PARULA=12//!˂!

1 所用到的OpenCv API:

/** @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.

@param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.
@param dst The result is the colormapped source image. Note: Mat::create is called on dst.
@param colormap The colormap to apply, see #ColormapTypes
*/

CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);

#ColormapTypes

COLORMAP_AUTUMN = 0, //!< ![autumn](pics/colormaps/colorscale_autumn.jpg)

OpenCv 006---LUT的作用与用法第1张

COLORMAP_BONE = 1, //!< ![bone](pics/colormaps/colorscale_bone.jpg)

OpenCv 006---LUT的作用与用法第2张

COLORMAP_JET = 2, //!< ![jet](pics/colormaps/colorscale_jet.jpg)

OpenCv 006---LUT的作用与用法第3张

COLORMAP_WINTER = 3, //!< ![winter](pics/colormaps/colorscale_winter.jpg)

OpenCv 006---LUT的作用与用法第4张

COLORMAP_RAINBOW = 4, //!< ![rainbow](pics/colormaps/colorscale_rainbow.jpg)

OpenCv 006---LUT的作用与用法第5张

COLORMAP_OCEAN = 5, //!< ![ocean](pics/colormaps/colorscale_ocean.jpg)

OpenCv 006---LUT的作用与用法第6张

COLORMAP_SUMMER = 6, //!< ![summer](pics/colormaps/colorscale_summer.jpg)

OpenCv 006---LUT的作用与用法第7张

COLORMAP_SPRING = 7, //!< ![spring](pics/colormaps/colorscale_spring.jpg)

OpenCv 006---LUT的作用与用法第8张

COLORMAP_COOL = 8, //!< ![cool](pics/colormaps/colorscale_cool.jpg)

OpenCv 006---LUT的作用与用法第9张

COLORMAP_HSV = 9, //!< ![HSV](pics/colormaps/colorscale_hsv.jpg)

OpenCv 006---LUT的作用与用法第10张

COLORMAP_PINK = 10, //!< ![pink](pics/colormaps/colorscale_pink.jpg)

OpenCv 006---LUT的作用与用法第11张

COLORMAP_HOT = 11, //!< ![hot](pics/colormaps/colorscale_hot.jpg)

OpenCv 006---LUT的作用与用法第12张

COLORMAP_PARULA = 12 //!< ![parula](pics/colormaps/colorscale_parula.jpg)

OpenCv 006---LUT的作用与用法第13张

2 测试代码

#include "opencv2opencv.hpp"#include <iostream>

using namespacestd;
using namespacecv;

void myColorMap(Mat &grayImg);

int main(int argc, char**argv)
{
    Mat src = imread("G:\CVworkstudy\program_wwx\研习社140课时\ZhaiZhigang140\Blender_Suzanne1.jpg");
    if(src.empty())
    {
        printf("Could not load image...
");
        return -1;
    }
    imshow("sourceImg", src);
    Mat grayLutDemo, dst;
    //使用LUT
applyColorMap(src, dst, COLORMAP_HSV);
    //显示结果
    imshow("ColorMap", dst);

    cvtColor(src, grayLutDemo, COLOR_BGR2GRAY);
    myColorMap(grayLutDemo);
    imshow("GrayLutDemo", grayLutDemo);
    waitKey(0);
    return 0;
}

void myColorMap(Mat &grayImg)
{
    int lut[256];
    //这个for循环中可以进行其他的操作 使相应的像素值 改变为 指定的像素值
    //这里相当于对单通道图像的像素进行二值化处理
    for (int i = 0; i < 256; i++) {
        if (i < 127) {
            lut[i] = 0;
        }
        elselut[i] = 255;
    }

    int hight =grayImg.rows;
    int width =grayImg.cols;
    for (int row = 0; row < hight; row++) {
        for (int col = 0; col < width; col++) {
            uchar pv = grayImg.at<uchar>(row, col);
            grayImg.at<uchar>(row, col) =lut[pv];
        }
    }
}

3 代码运行结果

OpenCv 006---LUT的作用与用法第14张

OpenCv 006---LUT的作用与用法第15张

OpenCv 006---LUT的作用与用法第16张

免责声明:文章转载自《OpenCv 006---LUT的作用与用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇敏捷开发FAQ[转]Jenkins + NuGet + MSBuild下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

springsession生成sessionid不一致问题解决

毫无疑问,我遇到的主要问题是两个不同版本的spring boot,需要共享sessionid。...

Fiddler断点应用

对于不需要修改的报文,我们可以手动完成发送,fiddler会把拦截的网页发送到服务器或者客户端,需要修改的报文,可以在Fiddler修改完成后,再选择转发。另外,我们也可以使用Fiddler的断点功能模拟网络中断场景,验证服务器超时,客户端的处理情况。Afterresponses:服务器响应之后,在fiddler将响应传回给客户端之前。...

layui使用layui-excel扩展导出xlsx格式文件

layui-excel扩展导出的文件可用office打开,正常显示;直接用table带的导出功能,导出的文件用office打开显示乱码。--导出表不展示--˃78910layui.config.use(['table','form','laydate','excel'],function(){11varform=layui.form;12vartable=l...

PLSQL操作Oracle创建用户和表(含创建用户名和密码)

1》 打开PLSQL,填写用户名和密码,为数据库选择ORCL2,成功登录后可以在界面顶部看到以下信息system@ORCL这意味着用户系统处于登录状态。菜单栏中的会话可以登录和注销。...

redis忘记密码的情况下重置密码

3.搜索服务,进入系统服务,停止Redis服务。...

PLSQL 美化规则文件详解

开始---①createtablestudent;结束;--② 美化效果是:开始——① CREATETABLESTUDENT;结束;--②...