如果你的图像是灰度的,我有一个关于卷积神经网络和用于训练的图像处理的一般问题。
以下面的图片为例:
这是一个灰度图像,但当我这样做的时候
image = cv2.imread("image.jpg")
print(image.shape)
我得到了
(1024, 1024, 3)
我知道opencv会自动为jpg图像创建3个通道。但是当涉及到网络训练时,如果我可以在(1024,1024,1)中使用图像,那么计算效率会更高-就像许多MNIST教程所演示的那样。但是,如果我重塑这个:
image.reshape(1024, 1024 , 1)
然后尝试例如显示图像
plt.axis("off")
plt.imshow(reshaped_image)
plt.show()
我得到了
raise TypeError("Invalid dimensions for image data")
这是否意味着在网络训练之前以这种方式重塑我的图像是不正确的?我想在图像中保留尽可能多的信息,但如果不需要这些额外的通道,我不想要它们。
发布于 2018-10-22 01:49:28
这对我很有效。
for image_path in dir:
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
X.append(img)
X = np.array(X)
X = np.expand_dims(X, axis=3)
set axis = Int :基于您的数组,1表示它将在前面预置一个新的维度。
https://stackoverflow.com/questions/47620214
复制相似问题