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

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.]]]

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

你可能感兴趣的:(python,tensorflow)