在OpenCV中使用applycolormap(伪彩色函数) ,可以应用于灰度图像,使用函数applycolormap产生伪彩色图像。
void | cv::applyColorMap (InputArray src, OutputArray dst, int colormap) |
Applies a GNU Octave/MATLAB equivalent colormap on a given image. | |
void | cv::applyColorMap (InputArray src, OutputArray dst, InputArray userColor) |
Applies a user colormap on a given image. |
其中:
enum | cv::ColormapTypes { cv::COLORMAP_AUTUMN = 0, cv::COLORMAP_BONE = 1, cv::COLORMAP_JET = 2, cv::COLORMAP_WINTER = 3, cv::COLORMAP_RAINBOW = 4, cv::COLORMAP_OCEAN = 5, cv::COLORMAP_SUMMER = 6, cv::COLORMAP_SPRING = 7, cv::COLORMAP_COOL = 8, cv::COLORMAP_HSV = 9, cv::COLORMAP_PINK = 10, cv::COLORMAP_HOT = 11, cv::COLORMAP_PARULA = 12, cv::COLORMAP_MAGMA = 13, cv::COLORMAP_INFERNO = 14, cv::COLORMAP_PLASMA = 15, cv::COLORMAP_VIRIDIS = 16, cv::COLORMAP_CIVIDIS = 17, cv::COLORMAP_TWILIGHT = 18, cv::COLORMAP_TWILIGHT_SHIFTED = 19 } |
测试实例:
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
#include <iostream>
using namespace std;
int main(int argc, const char *argv[])
{
// We need an input image. (can be grayscale or color)
if (argc < 2)
{
cerr << "We need an image to process here. Please run: colorMap [path_to_image]" << endl;
return -1;
}
Mat img_in = imread(argv[1]);
if(img_in.empty())
{
cerr << "Sample image (" << argv[1] << ") is empty. Please adjust your path, so it points to a valid input image!" << endl;
return -1;
}
// Holds the colormap version of the image:
Mat img_color;
// Apply the colormap:
applyColorMap(img_in, img_color, COLORMAP_JET);
// Show the result:
imshow("colorMap", img_color);
waitKey(0);
return 0;
}