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

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۲۰ نفر آنلاین
۲ عضو و ۱۱۸ مهمان در سایت حاضرند

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

0 امتیاز
32 بازدید

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

من با کد زیر تصویر را با 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  بوسیله ی asgari (امتیاز 91)   2

1 پاسخ

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

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

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

 

پاسخ داده شده آبان 5 بوسیله ی farnoosh (امتیاز 2,350)   5 12 47
...