نمایش تصویر متفاوت در Tensorflow و OpenCV - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

نمایش تصویر متفاوت در Tensorflow و OpenCV

+1 امتیاز

سلام به دوستان عزیز.

من با کد زیر تصویر را با Opencv و تنسورفلو لود می کنم تصویری که بوسیله OpenCV لود میشه مشکلی نداره ولی تصویر لود شده توسط tensorflow صحیح نیست کسی علتشو میدونه؟


import tensorflow as tf
import cv2


def loadTfImage(file_name):
  file_content = tf.read_file(file_name)
  img_content = tf.image.decode_jpeg(file_content,channels=3)
  return  tf.image.convert_image_dtype(img_content,dtype=tf.uint8)

def main():
  file_name = r"E:\Database\lena.jpg"
  tf_load = loadTfImage(file_name)

  with tf.Session() as sess:
    tf_img = sess.run(tf_load)
    cv2.imshow("tf_view", tf_img)

  cv_img = cv2.imread(file_name)
  cv2.imshow("cv_view",cv_img)

  cv2.waitKey(0)


main()




سوال شده آبان 4, 1396  بوسیله ی asgari (امتیاز 147)   3 8 14

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

تنسورفلو تصویر را به صورت RGB لود می کنه ولی OpenCV به صورت BGR ذخیره سازی می کنه برای رفع مشکل باید کانال R و B  را swap کنید.

tf_img = cv2.cvtColor(tf_img , cv2.COLOR_RGB2BGR)

 

پاسخ داده شده آبان 5, 1396 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد آبان 5, 1396 بوسیله ی asgari
...