اذهب إلى المحتوى

السؤال

نشر

عندما أحاول عرض الصورة باستخدام  بعد أن أكون قد قمت بقراءتها باستخدام التابع cv.imread تظهر لي الصورة بألوان غير صحيحة، لماذا؟ وما الحل؟

from matplotlib import pyplot as plt
import cv2
img = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg')
plt.title("Face")
plt.imshow(img)

الخرج:
index.png.39917c88c4f1446ef2fac903d432cb6e.png
علما أن الصورة الأصلية تبدو هكذا:
61699b5904e50_test5openeye.jpg.fcaa0728d88a3d8873549282ce1d874f.jpg

Recommended Posts

  • 1
نشر

OpenCV تقوم بقراءة الصور بالصيغة BGR أما ماتبلوتليب فتتعامل مع الصور بالصيغة RGB وبالتالي ترتبيب الألوان مختلف أي أنت تقرأ الصورة في التابع imread على أنها مصفوفة من 3 قنوات الأولى للأزرق والثانية للأخضر والثالث للأحمر، وعندما تقوم باستخدام ماتبلوتليب لعرضها فإنها تقرأ الأزرق على أنه أحمر والأخضر على أنه أخضر و الأحمر على أنه أزرق مما ينتج لنا هذه المشكلة. وبالتالي لحل المشكلة فكل ماعليك فعله هو استخدام التابع cv2.cvtColor مع الخاصية cv2.COLOR_BGR2RGB وبالتالي تحويل نظام الصورة إلى RGB:

from matplotlib import pyplot as plt
import cv2
img = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg')
img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.title("Face")
plt.imshow(img)

الخرج:
index.png.77fd40adb08b1a3746726deb334d1b79.png

  • 1
نشر

الفرق فهو ترتيب الألوان الذي تقرأه matplot ، فهي تقرأ BGR في حين أن معظم الصور RGB، لذا ببساطة شديدة كل ما علينا هو تغيير ترتيب الألون كالتالي:
 

plt.imshow(lena[:,:,::-1]) # RGB-> BGR

وتستطيع كتابتها بطريقة مختلفة كالتالي:

plt.imshow(lena[...,::-1])

 وستظهر بالشكل الصحيح هكذا:

index.png.77fd40adb08b1a3746726deb334d1b79.png.cfa69be04f55b2e8d6d322d0f8fc713b.png

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...