opencv中圖像偽彩色處理(C++ / Python)


使用OpenCV的預定義的顏色映射來將灰度圖像偽彩色化。

   1、 colormap(色度圖)是什么?

    假設我們想在地圖上顯示美國不同地區的溫度。我們可以把美國地圖上的溫度數據疊加為灰度圖像——較暗的區域代表較冷的溫度,更明亮的區域代表較熱的區域。這樣的表現不僅令人難以置信,而且代表了兩個重要的原因。首先,人類視覺系統沒有被優化來測量灰度強度的微小變化。我們能更好地感知顏色的變化。第二,我們用不同的顏色代表不同的意思。用藍色和較溫暖的溫度用紅色表示較冷的溫度更有意義。

  

    溫度數據只是一個例子,但還有其他幾個數據是單值(灰度)的情況,但將其轉換為彩色數據以實現可視化是有意義的。用偽彩色更好地顯示數據的其他例子是高度、壓力、密度、濕度等等。

    2、在OpenCV中使用applycolormap(偽彩色函數) 

    OpenCV的定義12種colormap(色度圖),可以應用於灰度圖像,使用函數applycolormap產生偽彩色圖像。讓我們很快看到如何將色度圖的一種模式colormap_jet應用到一幅圖像中。

    

 

C++

1
2
3
4
5
using namespace  cv; 
 
Mat im_gray = imread( "pluto.jpg" , IMREAD_GRAYSCALE);
Mat im_color;
applyColorMap(im_gray, im_color, COLORMAP_JET);

Python

1
2
3
4
import cv2 
 
im_gray  = cv2.imread( "pluto.jpg" , cv2.IMREAD_GRAYSCALE)
im_color  = cv2.applyColorMap(im_gray, cv2.COLORMAP_JET)
 
 

 

下圖顯示了一個關於colormap(色度圖)的視覺表示和COLORMAP_*的數值,左邊的顏色模式表示較低的灰度值,右邊的則表示較高的灰度值。

 

 

Value Name Scale
0 COLORMAP_AUTUMN colorscale_autumn
1 COLORMAP_BONE colorscale_bone
2 COLORMAP_JET colorscale_jet
3 COLORMAP_WINTER colorscale_winter
4 COLORMAP_RAINBOW colorscale_rainbow
5 COLORMAP_OCEAN colorscale_ocean
6 COLORMAP_SUMMER colorscale_summer
7 COLORMAP_SPRING colorscale_spring
8 COLORMAP_COOL colorscale_cool
9 COLORMAP_HSV colorscale_hsv
10 COLORMAP_PINK colorscale_pink
11 COLORMAP_HOT colorscale_hot
經典colormap色度圖
      有些人對餐館的菜單從不滿意。廚師在選擇原料方面的專長,他們將通過添加、替換和替代原料來定制菜餚。哦,是的,那些人。如果你是這些人之一,並想創建自己的顏色表,下面是步驟:
1、定義一個映射:色度圖是從0-255值256種顏色映射。在OpenCV,我們需要創建一個大小為256×1的8位彩色圖像來存儲256個顏色值。
2、對照顏色使用查找表:在OpenCV,你可以申請一個信息存儲在一個256×1的彩色圖像使用查找表LUT圖像。

C++

1
2
3
4
Mat im_color;
// NOTE : im_gray is 3-channel image with identical 
// red, green, blue channels.  
LUT(im_gray, lut, im_color);

Python

1
2
3
# NOTE : im_gray is 3-channel image with identical
# red, green, blue channels.  
im_color = cv2.LUT(im_gray, lut)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM