python 图像读取

1.cv2.imread:

opencv读取图像得到numpy数组,uint8格式, 大小为H*W*3,读入顺序为BGR,范围0~255

2.PIL.image.open

PIL是有自己的数据结构的,类型是;但是可以转换成numpy数组,转换后的数组为unit8,0-255范围,图像形状是(H,W,C),读入的顺序是RGB

3.tensor调整通道顺序:

​​a.permute(....)

numpy调整通道顺序:

b = np.transpose(a, (...))

4.生成热度图

import seaborn as sns
import numpy as np
'''
1.图像绘制
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80      1英寸等于2.5cm,A4纸是 21*30cm的纸张 
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框

'''

fig = plt.figure()

‘’‘2.在一个画板设置图像的行数和列数,即划分为多少个子图’‘’
ax = fig.add_subplot(1, 1, 1)

‘’‘3.热度图生成,heat_map=热度图数据, center=中心对其参数, ax=图像绘制在画板上的位置’‘’
mean_l = sns.heatmap(heat_map, center=dev, ax=ax)

‘’‘返回figure实例’’‘
mean_l_map = mean_l.get_figure()
'''4.保存图像, dpi=分辨率,bbox_inches=指定将图表多余的空白区域裁减掉。如果要保留图表周围多余的空白区域,可省略这个实参。'''
man_l_map.savefig(save_path, dpi=300, bbox_inches='tight')

#关闭plt窗口,防止在循环中生成窗口过多
plt.show()

5.从网络中获取的图像数据要转换为numpy,要依次将图像tensor的梯度分离开,将tensor数据放在cpu上, 转为numpy

image_tensor.detach().cpu().numpy()

你可能感兴趣的:(服务器)