الدرس الاول : التعامل
مع الصور .
قراءة صورة :
باستخدام التابع cv2.imread() ولكن يجب اعطاء المسار الكامل للصورة او وضعها
بمجلد العمل ويكتب الاسم مع اللاحقة ك str .
المتغير الثاني وهو مؤشر flag يحدد كيفية قراءة الصورة , ويأخذ ثلاث قيم :
·
cv2.IMREAD_COLOR
·
cv2.IMREAD_GRAYSCALE
·
cv2.IMREAD_UNCHANGED
وتأثيرهم بالترتيب:
·
اقرأ الصورة بالالوان الكاملة (بدون شفافية )
·
اقرأ الصورة بالرمادي (مستوي واحد)
·
اقرأ الصور بالالوان الكاملة (مع الشفافية)
ويمكن تمرير 1 ,0.-1 كبديل عن الاعلام حرفياً
بالترتيب.
كما المثال التالي :
import numpy as np
import cv2
# load color image in gray scale
pic = cv2.imread('image1.png',0)
عرض الصورة:
باستخدام التابع : cv2.imshow()
نظهر الصورة بالنافذة , واتوماتيكياً تتلائم الصورة مع النافذة , واول متغير هو
اسم النافذة , والمتغير الثاني هو الصورة , ويمكنك انشاء اي عدد من النوافذ ولكن
كل منها له اسم فريد ,.
cv2.imshow('image',pic)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.waitKey()
وهو تابع ينتظر لمدة تساوي متغيره الاول بواحدة
ميلي ثانية , حتى يتابع التنفيذ ,او تاتيه ضغطة زر , يردها بمتغير الخرج له ,
(بصيغة ascii
) واذا مرننا له صفراً او عدداً سالباً فسوف يتوقف ينتظر ابداً لاي ضغطة زر ..
cv2.destroyAllWindows()
ببساطة اغلق كل النوافذ الموجودة , اما التابع
cv2.destroyWindow()
فيجب تمرير اسم نافذة محدد لها.
--------------------------
ملاحظة :
اذا اردنا تحجيم اظهار الصورة , لمايناسب
الشاشة فعلينا استخدام التابع cv2.namedWindow() نمرر له اسم النافذة المرغوب مع علم له خيارين:cv2.WINDOW_NORMAL او cv2.WINDOW_AUTOSIZE .
cv2.namedWindow('image',cv2.WINODOW_NORMAL)
cv2.imshow('image',pic)
cv2.waitKey(0)
cv2.destroyAllWindows()
كتابة صورة :
استخدم التابع cv2.imwrite()
لحفظ الصورة .
اول متغير لها هو اسم الملف , والثاني هو رمز
الصورة ( متغيرها)
cv2.imwritr('picgray.png',pic)
الملخص:
البرنامج التالي يحمل الصورة ويظهرها ويحفظها بالمستوى الرمادي اذا ضغطت 's'
او لا يحفظها ويغلق بضغط ESC.
import numpy
as np
import cv2
img = cv2.imread('pic5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k
== 27: # wait for ESC key to
exit
cv2.destroyAllWindows()
elif k
== ord('s'):
# wait for 's' key to save and exit
cv2.imwrite('messigray.png',img)
cv2.destroyAllWindows()
باستخدام Matplotlib:
تتيح هذه المكتبة امكانيات افضل لاظهار الصور
وحفظها كما يلي:
import numpy
as np
import cv2
from matplotlib
import pyplot as
plt
img = cv2.imread('pic.jpg',0)
plt.imshow(img,
cmap = 'gray', interpolation =
'bicubic')
plt.xticks([]),
plt.yticks([]) # to hide tick values on
X and Y axis
plt.show()
هناك العديد من الخيارات المتوفرة في Matplotlib ويمكن العودة للمراجع الخاصة بها , للحصول على
تعليمات اكثر ,
---------------------------------------
ملاحظة :
عند تحميل الصور عبر opencv نحصل على صور بصيغة BGR ولكن عند اظهارها ب Matplotlib يتم اعتبارها RGB (اي يكون الاحمر ازرق والعكس) لذلك يجب مراعاة
هذا الوضع والانتباه لتبدبل الالوان قبل اظهرها عبر ال Matplotlib ...
-------------------------------------
ليست هناك تعليقات:
إرسال تعليق