zoukankan      html  css  js  c++  java
  • Matrix2RGB

     1 def matrix2gray(mat):
     2     """
     3     convert matrix image into gray image
     4     :param mat: matrix (n x m) with numpy type
     5     :return:  mat
     6     """
     7     min_v = int(mat.min())
     8     max_v = int(mat.max())
     9     # 0--255
    10     gray = (mat - min_v) / (max_v - min_v) * 255
    11     return gray.astype(np.uint8)
    12         
    13 
    14 def gray2rgb(gray, node_seg, color_dict):
    15     """
    16     convert c into RGB image
    17     :param gray: single channel image with numpy type
    18     :param color_dict: color map
    19     :return:  rgb image
    20     """
    21     point0 = node_seg[0]
    22     point1 = node_seg[0]
    23     point2 = node_seg[0]
    24     point3 = node_seg[0]
    25     # 1:创建新图像容器
    26     rgb_image = np.zeros(shape=(*gray.shape, 3))
    27     # 2: 遍历每个像素点
    28     for i in range(rgb_image.shape[0]):
    29         for j in range(rgb_image.shape[1]):
    30             # 3:对不同的灰度值选择不同的颜色
    31             if gray[i, j] <= point0:
    32                 rgb_image[i, j, :] = color_dict["color0"]
    33             elif point1 >= gray[i, j] > point0:
    34                 rgb_image[i, j, :] = color_dict["color1"]
    35             elif point2 >= gray[i, j] > point1:
    36                 rgb_image[i, j, :] = color_dict["color2"]
    37             elif point3 >= gray[i, j] > point2:
    38                 rgb_image[i, j, :] = color_dict["color2"]
    39             else:
    40                 rgb_image[i, j, :] = color_dict["color4"]
    41     return rgb_image.astype(np.uint8)
    42     
    43 
    44 Mod_t = OD_24h_day[:, :, t]
    45 # 颜色
    46 color_dict_O_D = {"color0": [234, 253, 196], # E8FFBD
    47                           "color1": [251, 208, 84],  # FAD154
    48                           "color2": [240, 168, 48],  # F0A82E
    49                           "color3": [171, 84, 17],#AD5311
    50                           "color4": [109, 0, 0]}#630300
    51 # 颜色分段
    52 node_seg = (np.array([0, 5, 20]) - min_v) / (max_v - min_v) * 255
    53 node_seg = node_seg.astype(np.uint8)
    54 
    55 # 0--255
    56 gray = matrix2gray(Mod_t)
    57 
    58 # gray2rgb保存成png图像
    59 rgb_image = gray2rgb(gray, node_seg, color_dict_O_D)
    60 
    61 # 保存成彩色图片
    62 plt.imshow(rgb_image)  # Needs to be in row, col order
    63 filename = './rgb.png'
    64 plt.axis('off')
    65 plt.savefig(filename, dpi=600, transparent=True)
    66 plt.show()
    个人学习记录
  • 相关阅读:
    import和from .xxx import *的一点重要区别
    django 的时区设置
    更新项目,uwsgi重新加载和日志文件
    jQuery将json字符串显示在页面上
    远程访问rhel7的oracle中的问题
    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
    rhel7使用centos7yum组件
    spring AOP
    public protected default private权限修饰符理解
    用idea创建web项目
  • 原文地址:https://www.cnblogs.com/jeshy/p/15114918.html
Copyright © 2011-2022 走看看