1、读取和保存
import numpy as np
import matplotlib.pyplot as plt
image = np.load("D:/Research_Time/digital_image_processing/codenote/disp.npy")
for i in range(0,image.shape[0]):
plt.imshow(image[i,:,:])
plt.savefig('D:/Research_Time/digital_image_processing/codenote/fuzhulist/read_npy2/' + str(i) + '.jpg')
plt.show()
我的npy文件叫disp.npy,大小是(697,192,640),697是图像个数,后面是每一张图像的大小
image = np.load("D:/Research_Time/digital_image_processing/codenote/disp.npy")
上面这句话是载入npy文件种的数据,换成自己的就可以了,因为我的文件里存了多张图像,所以下面的显示使用了for循环,如果是单张图像,去掉循环就可以了,此处借鉴了这位博主的帖子,点击地址在此即可跳转。地址在此
2、读取深度图像,进行热图显示和保存
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('D:/Research_Time/digital_image_processing/codenote/fuzhulist/read_npy2/1.jpg')
img2 = cv.applyColorMap(img, 2)
plt.imshow(img2)
plt.savefig('../fuzhulist/read_1.jpg')
plt.show()
# COLORMAP_AUTUMN = 0,
# COLORMAP_BONE = 1,
# COLORMAP_JET = 2,
# COLORMAP_WINTER = 3,
# COLORMAP_RAINBOW = 4,
# COLORMAP_OCEAN = 5,
# COLORMAP_SUMMER = 6,
# COLORMAP_SPRING = 7,
# COLORMAP_COOL = 8,
# COLORMAP_HSV = 9,
# COLORMAP_PINK = 10,
# COLORMAP_HOT = 11
接下来是读取上面保存的图像,进行热图显示,然后保存。我这个是读取的单个图像,如果要读取所有图的话,加个for循环就可以了,然后applycolosmap里面的数字2是热图显示模式,下面的注释有写,如果对显示模式有需求的话,可以把这些数字都试试看。
ps:
但是这种显示方法有个问题,那就是用plt显示和保存的图像有坐标轴和背景板,而且这种方法改变了原图的大小,对原图数据进行了加工,于是我采用了下面这种方式
image = np.load("D:/Research_Time/digital_image_processing/codenote/disp.npy")
for i in range(0,image.shape[0]):
imgs = image[i,:,:]
cv.imwrite('../fuzhulist/read_npy3/' + str(i) + '.png', imgs)
这种方式不会对图像数据进行改动,但是保存下来的图是全黑的,根本看不出深度图的样子,所以就很麻爪。
3、一点呼吁
如果有路过大佬看见了我,并且知道如何解决上述问题,请评论一下,非常感谢!