比如这个三维彩色图片格式如下:
(582, 1024, 3)
如果这样操作:是无法得到一个彩色复原图片的。
filter_ = np.full(shape = [3,3,3],fill_value=1/27).reshape(3,3,3,1)
conv = tf.nn.conv2d(input = image.reshape(1,582, 1024, 3).astype(np.float32),filter = filter_,strides=[1,1,1,1,],padding='SAME')
with tf.Session() as sess:
ret = sess.run(conv)
print(ret.shape)
plt.figure(figsize=(12,9))
plt.imshow(ret.reshape(582,1024),cmap = 'gray')
课程中老师给的方法是:
#改变图片的维度顺序
image = np.transpose(image,axes = [2,0,1])
image.shape
#改变卷积核
filter_ = np.full(shape = [3,3],fill_value=1/9).reshape(3,3,1,1)
conv = tf.nn.conv2d(input = image.reshape(3,582,1024,1).astype(np.float32),filter=filter_,strides=[1,1,1,1],padding="SAME")
with tf.Session() as sess:
ret = sess.run(conv)
print(ret.shape)
plt.figure(figsize=(12,9))
plt.imshow(ret.reshape(3,582,1024).transpose([1,2,0]).astype(np.uint8))
就到这一步可以输出彩色图片,我对卷积核的这个操作,和为什么改变维度顺序不是和理解,希望有大佬指点迷津!