OpenCV伪彩色applyColorMap函数
生活随笔
收集整理的這篇文章主要介紹了
OpenCV伪彩色applyColorMap函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
? ? ? ?假如我們想在圖片上顯示不同區域的溫度,我們可以把紅外圖像上的溫度數據疊加為灰度圖像,暗的區域代表冷的溫度,更明亮的區域代表較熱的溫度,但是這樣的呈現不能給人類視覺帶來直覺的感受,不能更好地感知顏色的變化。如果我們用不同的顏色代表不同的溫度,比如用藍色表示冷的溫度,紅的表示熱的溫度,能夠帶來更好的感知。為了更好地展示數據,我們把數據轉換為彩色數據來實現可視化,用偽彩色更好地顯示溫度、壓力、濕度等數據。
OpenCV提供了偽彩色函數applyColorMap來實現偽彩色功能。
原型1
CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);功能
把給定的圖像轉換為偽彩色圖像。
參數釋義:
-
參數1 src 輸入源圖像,灰度圖或者CV_8UC1、CV_8UC3類型的圖。
-
參數2 dst 轉換后的偽彩色圖,注意:dst調用了Mat::create
-
參數3 colormap 偽彩色圖像類型 參考ColormapTypes
原型2
CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, InputArray userColor);功能
把給定的圖像轉換為偽彩色圖像。
參數釋義:
-
參數1 src 輸入源圖像,灰度圖或者CV_8UC1、CV_8UC3類型的圖。
-
參數2 dst 轉換后的偽彩色圖,注意:dst調用了Mat::create
-
參數3 userColor 用戶定義的類型,適用于類型:CV_8UC1 或者 CV_8UC3并且大小為256
示例源碼
#include <iostream> #include <opencv2/opencv.hpp> ? int main() {cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");cv::Mat imageMapAutum;cv::Mat imageMapBone;cv::Mat imageMapJet;cv::Mat imageMapCIVIDIS;cv::Mat imageMapCOOL;cv::Mat imageMapDEEPGREEN;cv::Mat imageMapHOT;cv::Mat imageMapHSV;cv::Mat imageMapINFERNO;cv::Mat imageMapMAGMA;cv::Mat imageMapOCEAN;cv::Mat imageMapPARULA;cv::Mat imageMapPINK;cv::Mat imageMapPLASMA;cv::Mat imageMapRAINBOW;cv::Mat imageMapSPRING;cv::Mat imageMapSUMMER;cv::Mat imageMapTURBO;cv::Mat imageMapTWILIGHT;cv::Mat imageMapTWILIGHT_SHIFTED;cv::Mat imageMapVIRIDIS;cv::Mat imageMapWINTER; ?cv::applyColorMap(image, imageMapAutum, cv::COLORMAP_AUTUMN);cv::applyColorMap(image, imageMapBone, cv::COLORMAP_BONE); ?cv::applyColorMap(image, imageMapJet, cv::COLORMAP_JET);cv::applyColorMap(image, imageMapCIVIDIS, cv::COLORMAP_CIVIDIS);cv::applyColorMap(image, imageMapCOOL, cv::COLORMAP_COOL);cv::applyColorMap(image, imageMapDEEPGREEN, cv::COLORMAP_DEEPGREEN);cv::applyColorMap(image, imageMapHOT, cv::COLORMAP_HOT);cv::applyColorMap(image, imageMapHSV, cv::COLORMAP_HSV);cv::applyColorMap(image, imageMapINFERNO, cv::COLORMAP_INFERNO);cv::applyColorMap(image, imageMapMAGMA, cv::COLORMAP_MAGMA);cv::applyColorMap(image, imageMapOCEAN, cv::COLORMAP_OCEAN);cv::applyColorMap(image, imageMapPARULA, cv::COLORMAP_PARULA);cv::applyColorMap(image, imageMapPINK, cv::COLORMAP_PINK);cv::applyColorMap(image, imageMapPLASMA, cv::COLORMAP_PLASMA);cv::applyColorMap(image, imageMapRAINBOW, cv::COLORMAP_RAINBOW);cv::applyColorMap(image, imageMapSPRING, cv::COLORMAP_SPRING);cv::applyColorMap(image, imageMapSUMMER, cv::COLORMAP_SUMMER);cv::applyColorMap(image, imageMapTURBO, cv::COLORMAP_TURBO);cv::applyColorMap(image, imageMapTWILIGHT, cv::COLORMAP_TWILIGHT);cv::applyColorMap(image, imageMapTWILIGHT_SHIFTED, cv::COLORMAP_TWILIGHT_SHIFTED);cv::applyColorMap(image, imageMapVIRIDIS, cv::COLORMAP_VIRIDIS);cv::applyColorMap(image, imageMapWINTER, cv::COLORMAP_WINTER);?cv::imshow("image", image);cv::imshow("Autum", imageMapAutum);cv::imshow("Bone", imageMapBone);cv::imshow("Jet", imageMapJet);cv::imshow("CIVIDIS", imageMapCIVIDIS);cv::imshow("COOL", imageMapCOOL);cv::imshow("DEEPGREEN", imageMapDEEPGREEN);cv::imshow("HOT", imageMapHOT);cv::imshow("HSV", imageMapHSV);cv::imshow("INFERNO", imageMapINFERNO);cv::imshow("MAGMA", imageMapMAGMA);cv::imshow("OCEAN", imageMapOCEAN);cv::imshow("PARULA", imageMapPARULA);cv::imshow("PINK", imageMapPINK);cv::imshow("PLASMA", imageMapPLASMA);cv::imshow("RAINBOW", imageMapRAINBOW);cv::imshow("SPRING", imageMapSPRING);cv::imshow("SUMMER", imageMapSUMMER);cv::imshow("TURBO", imageMapTURBO);cv::imshow("TWILIGHT", imageMapTWILIGHT);cv::imshow("TWILIGHT_SHIFTED", imageMapTWILIGHT_SHIFTED);cv::imshow("VIRIDIS", imageMapVIRIDIS);cv::imshow("WINTER", imageMapWINTER);std::cout << ""; ?cv::waitKey(0); }運行結果如下圖所示,效果供各位參考使用:
?
?
?
?
?
?
?
?
?
參考
ColormapTypes枚舉定義
?
總結
以上是生活随笔為你收集整理的OpenCV伪彩色applyColorMap函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ std::swap函数的使用
- 下一篇: OpenCV学习之Scalar数据类型