python/matlab将数组以彩色图片的形式展现

python:

plt.imshow可以将数组的值以图片的形式展示出来,数组的值对应着不同的颜色深浅。比如一个2X2的数组,图片里的小方块也会有2X2个。

案例1结果

案例1代码

import numpy as np
import matplotlib.pyplot as plt

x = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8]])
plt.imshow(x, cmap='RdBu')
cb = plt.colorbar(label='color bar settings')
plt.show()

案例2结果

由于研究需要,生成了12通道27*27的tiff数据,想要可视化各个通道:

案例2代码

import tifffile
import matplotlib.pyplot as plt
import numpy as np

path = '-40_40528165_4108935_128266.tiff'
sample = tifffile.imread(path)  # (27,27,12)
sample_new = np.transpose(sample, (2, 0, 1))  # (12,27,27)
title = ['dF','waF','wbF','gF','fV','qxyz','SIG1','SSI','VS','Tx','Ty','Tz']

# 定义子图的行数和列数
rows = 3
cols = 4
# 创建一个新的图像窗口,并设置子图的排列方式
fig, axes = plt.subplots(rows, cols, figsize=(10, 8))
# 遍历每个通道的数据,并在相应的子图中绘制
for i, ax in enumerate(axes.flat):
    # 获取当前通道的数据
    channel_data = sample_new[i, :, :]

    # 绘制当前通道的图像
    ax.imshow(channel_data, cmap='RdBu',interpolation='bicubic')# camp是色彩映射,bilinear'双线性插值来平滑图像,减少小方块的边界显示。若要更平滑的效果,可尝试使用 'bicubic' 插值。
    ax.axis('off') #不显示坐标轴
    ax.set_title(title[i],y=-0.12) #设置子标题,y=-0.12的作用是将标题放于下方

# 调整子图之间的间距
plt.tight_layout()
# 显示图像
plt.show()

cmap配色

matlab:

myArray = randi([-10, 10], 27, 27); % 生成一个随机的27x27数组,假设值在-10到10之间

imagesc(myArray); % 使用imagesc函数展示数组
colormap('hsv'); % 将颜色设置为hsv调色板
colorbar; % 显示颜色条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值