python中cv2.imread和tf.image.decode_jpeg读取图片像素不一致问题

探讨使用TensorFlow与OpenCV读取同一图像文件时出现的像素差异现象,通过对比两者读取结果,分析可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def image_read_tf(imnames):
    
    images = tf.gfile.FastGFile(imnames,'rb').read()
    images = tf.image.decode_jpeg(images, channels=3)
    return images
def image_read_cv(imname):
    image = cv2.imread(imname,cv2.IMREAD_UNCHANGED)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB).astype(np.float32)
    return image
    
img_tf = image_read_tf('./image29202.jpg')
img_cv = image_read_cv('./image29202.jpg')
with tf.Session() as sess:
    print(sess.run(img)-img_cv)

输出

[[[ 1.  1.  1.]
  [ 1.  1.  1.]
  [ 1.  1.  1.]
  ...
  [ 1. -1.  0.]
  [ 0.  0.  0.]
  [ 0.  0.  0.]]

 [[ 0.  0.  0.]
  [ 0.  0.  0.]
  [ 0.  0.  0.]
  ...
  [ 1. -1.  0.]
  [ 0.  0.  0.]
  [ 0.  0.  0.]]

 [[ 0.  0.  0.]
  [ 0.  0.  0.]
  [-1. -1. -1.]
  ...
  [ 0.  0.  0.]
  [ 0.  0.  0.]
  [ 0.  0.  0.]]

 ...

 [[-1. -1. -1.]
  [-1. -1. -3.]
  [-3.  0. -1.]
  ...
  [-1.  1.  0.]
  [-2.  1. -2.]
  [-3.  0. -3.]]

 [[-1. -1. -1.]
  [-2. -2. -3.]
  [-2.  0. -1.]
  ...
  [-1. -1. -1.]
  [-2.  1.  0.]
  [-2.  1.  0.]]

 [[-3. -1. -2.]
  [-3. -1. -2.]
  [-2.  0. -2.]
  ...
  [-1. -1. -1.]
  [-2. -1. -1.]
  [-2. -1. -1.]]]

读取像素略有差异,不知为何。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值