伪彩映射

python版的

摘自:https://blog.csdn.net/guduruyu/article/details/60868501

 

 

 

 

 

# -*- coding: utf-8 -*-
"""
Created on Wed Apr 25 10:25:15 2018

@author: Administrator
"""

from matplotlib import cm  
import numpy as np   
from PIL import Image


    def get_jet():    #获取整型和浮点型的jet map
      
        colormap_int = np.zeros((256, 3), np.uint8)  
        colormap_float = np.zeros((256, 3), np.float)  
      
        for i in range(0, 256, 1):  
           colormap_float[i, 0] = cm.jet(i)[0]  
           colormap_float[i, 1] = cm.jet(i)[1]  
           colormap_float[i, 2] = cm.jet(i)[2]  
      
           colormap_int[i, 0] = np.int_(np.round(cm.jet(i)[0] * 255.0))  
           colormap_int[i, 1] = np.int_(np.round(cm.jet(i)[1] * 255.0))  
           colormap_int[i, 2] = np.int_(np.round(cm.jet(i)[2] * 255.0))  
      
        np.savetxt("jet_float.txt", colormap_float, fmt = "%f", delimiter = ' ', newline = '\n')  
        np.savetxt("jet_int.txt", colormap_int, fmt = "%d", delimiter = ' ', newline = '\n')  
      
        print colormap_int  
      
        return  
    
    
    def get_spectral():  #获取其他种类的  如:spectral map
 
    colormap_int = np.zeros((256, 3), np.uint8)  
    colormap_float = np.zeros((256, 3), np.float)  
 
    for i in range(0, 256, 1):  
       colormap_float[i, 0] = cm.spectral(i)[0]  
       colormap_float[i, 1] = cm.spectral(i)[1]  
       colormap_float[i, 2] = cm.spectral(i)[2]  
 
       colormap_int[i, 0] = np.int_(np.round(cm.spectral(i)[0] * 255.0))  
       colormap_int[i, 1] = np.int_(np.round(cm.spectral(i)[1] * 255.0))  
       colormap_int[i, 2] = np.int_(np.round(cm.spectral(i)[2] * 255.0))  
 
    np.savetxt("spectral_float.txt", colormap_float, fmt = "%f", delimiter = ' ', newline = '\n')  
    np.savetxt("spectral_int.txt", colormap_int, fmt = "%d", delimiter = ' ', newline = '\n')  
 
    print colormap_int  
 
    return


    def gray2color(gray_array, color_map):  #伪彩映射代码
          
        rows, cols = gray_array.shape  
        color_array = np.zeros((rows, cols, 3), np.uint8)  
      
        for i in range(0, rows):  
            for j in range(0, cols):  
                color_array[i, j] = color_map[gray_array[i, j]]  
          
        #color_image = Image.fromarray(color_array)  
      
        return color_array  


    def test_gray2color():  #一个调用子程序
        gray_image = Image.open('Image.png').convert("L")    #
      
        gray_array = np.array(gray_image)  
          
        figure()  
        subplot(211)  
        plt.imshow(gray_array, cmap = 'gray')  
      
        jet_map = np.loadtxt('E:\\Development\\Thermal\\ColorMaps\\jet_int.txt', dtype = np.int)  
        color_jet = gray2color(gray_array, jet_map)  #调用了一个函数,,把一个数组进行彩色映射,
        subplot(212)                                 #做另一个画布
        plt.imshow(color_jet)                        #进行画图
        show()                                       #把图片显示出来
        return  



 

posted @ 2018-04-25 13:45  GXTon  阅读(368)  评论(0编辑  收藏  举报