gpt4 book ai didi

opencv - 将图像从 cvimg 正确转换为张量

转载 作者:行者123 更新时间:2023-12-02 17:05:29 25 4
gpt4 key购买 nike

是否有适当的方法将 cvimg 正确转换为张量而不会导致任何颜色失真?我通过存储2张图像进行了比较。一个使用 tensorflow 解码,另一个使用 openCV 完成

This is supposed to be the original image
使用 tensorflow jpeg 编码器生成的图像

  file_reader = tf.read_file(file_name, input_name)
if file_name.endswith(".png"):
image_reader = tf.image.decode_png(
file_reader, channels=3, name="png_reader")
elif file_name.endswith(".gif"):
image_reader = tf.squeeze(
tf.image.decode_gif(file_reader, name="gif_reader"))
elif file_name.endswith(".bmp"):
image_reader = tf.image.decode_bmp(file_reader, name="bmp_reader")
else:
image_reader = tf.image.decode_jpeg(
file_reader, channels=3, name="jpeg_reader")

enter image description here
使用 cv 生成的图像到张量转换。

image_reader = tf.convert_to_tensor(cvimg)

在 cv 转换期间我是否遗漏了一些步骤?谢谢!

最佳答案

OpenCV 以 BGR 格式加载图像,而 Tensorflow 使用 RGB 格式(如您所见,图像的蓝色和红色 channel 已交换)。

因此,如果您想读取使用 OpenCV 加载的图像(我想 cvimg ),您只需将颜色 channel 从 BGR 交换为 RGB:

image_reader = tf.convert_to_tensor(cvimg)
b, g, r = tf.unstack (image_reader, axis=-1)
image_reader = tf.stack([r, g, b], axis=-1)

关于opencv - 将图像从 cvimg 正确转换为张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55440410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com