首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras Cropping2D更改颜色通道

Keras Cropping2D更改颜色通道
EN

Stack Overflow用户
提问于 2017-01-30 04:47:03
回答 1查看 1.6K关注 0票数 1

我尝试使用以下代码片段来可视化keras裁剪2D的效果:

代码语言:javascript
复制
from keras import backend as K
from keras.layers.convolutional import Cropping2D
from keras.models import Sequential
# with a Sequential model
model = Sequential()
model.add(Cropping2D(cropping=((22, 0), (0, 0)), input_shape=(160, 320, 3)))
cropping_output = K.function([model.layers[0].input],
                                  [model.layers[0].output])
cropped_image = cropping_output([image[None,...]])[0]
compare_images(image,
               cropped_image.reshape(cropped_image.shape[1:]))

下面是绘图函数:

代码语言:javascript
复制
def compare_images(left_image, right_image):    
    print(image.shape)
    f, (ax1, ax2) = plt.subplots(1, 2, figsize=(24, 9))
    f.tight_layout()
    ax1.imshow(left_image)
    ax1.set_title('Shape '+ str(left_image.shape),
                  fontsize=50)
    ax2.imshow(right_image)
    ax2.set_title('Shape '+ str(right_image.shape)
                  , fontsize=50)
    plt.show()

结果是

显然,颜色通道已经改变了。但是为什么呢?我的代码中有没有错误,或者可能是keras的bug?

EN

回答 1

Stack Overflow用户

发布于 2017-02-03 19:31:30

这不是Keras的bug。张量通常是float32类型的,因此当计算输出时,它们也是float32类型的。您需要将图像数据转换为uint8类型后才能显示。

代码语言:javascript
复制
ax2.imshow(np.uint8(right_image))

compare_images中应正确显示图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41925765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档