自定义三维数组转换为彩色图像
"""自定义三维数组转换为彩色图像"""
import skimage
import numpy as np
# 创建一个三维数组
arr1 = [
[[255, 0, 0], [255, 255, 0], [0, 255, 0]],
[[255, 0, 255], [0, 0, 255], [0, 255, 255]]
]
# 如果每个元素的数值相同,则是灰度图中的颜色
arr2 = [
[[150, 150, 150], [200, 200, 200]],
[[50, 50, 50], [100, 100, 100]]
]
# 几种颜色
arr3 = [
[[25, 202, 173], [140, 199, 181], [160, 238, 225], [190, 231, 233], [190, 237, 199]],
[[214, 213, 183], [209, 186, 116], [230, 206, 172], [236, 173, 158], [244, 96, 108]]
]
# 普通数组需要先转换为numpy数组才可以作为图像显示
img1 = np.array(arr1)
img2 = np.array(arr2)
img3 = np.array(arr3)
# numpy的hstack()将数组水平堆叠,参数为一个列表,要求每个数组有相同的行数以及通道数
# numpy的vstack()将数组垂直堆叠,参数为一个列表,要求每个数组有相同的列数以及通道数
# 先将img1与img2水平堆叠,之后再与img3垂直堆叠
skimage.io.imshow(np.vstack([np.hstack([img1, img2]), img3]))
skimage.io.show()
自定义二维数组转为灰度图像
"""自定义二维数组转为灰度图像"""
from skimage import io
import numpy as np
# 如果不规定上下界,则自动将最小值显示为黑,最大值显示为白
# 如果需要以黑色为0,白色为255级别显示数据,则需要加参数vmin=0, vmax=255
arr1 = [
[200, 50, 125],
[175, 100, 50]
]
# 0-1之间的浮点数矩阵显示为灰度图,超过范围则按热度图显示。需要指定cmap
arr2 = [
[.85, .6, .4],
[.5, .15, .7]
]
img1 = np.array(arr1)
img2 = np.array(arr2)
# io.imshow(img1, cmap='gray', vmin=0, vmax=255)
io.imshow(img1, cmap='gray')
io.show()