قراءة الصور من خلال الروابط

إن قراءة الصور من خلال الملفات في OpenCV-Python يبدو غير واضح إلى حد ما ، ولكن في الكثير من الأحيان نريد قراءة صورة من خلال رابط ومعالجتها في Opencv والطريقة الوحيدة لفعل ذلك هي بتحميل الصورة وحفذها بصيغة JPEG بعد ذلك قراءتها في OpenCV ولكن هذه الطريقة مملة جدا أليس كذلك ؟ فلا أحد يريد القيام بالأعمال اليدوية في هاته الأيام !!! على الأقل ليس أنا .

هناك طريقة أخرى يمكن أن تكون بتحميل اتوماتيكي للصورة ثم حفظها بصيغة JPEG بإستخدام الأمر wget بعد ذلك قراءتها في OpenCV ، قد تظهر هذه الطريقة أفضل قليلا ولكنها مرة أخرى طريقة ملتوية لأن هناك طريقة إضافية وهي حفظ الصورة على القرص الصلب .

إذن كيف يمكننا التحايل وتحميل الصورة مباشرة من الرابط وتحميلها مباشرة إلى Python OpenCV ؟

حسنا للقيام بهذه العملية سنقوم بإنشاء ملف بايثون جديد تحت أي إسم تريد ونقوم بإضافة السطور التالية إليه :


import urllib
import cv2
import numpy as np

الخطوة الأولى هي إستيراد المكتبات اللازمة للعمل ومن بين تلك المكتبات مكتبة urllib ونحتاجها من أجل معالجة الروابط .

دعونا نأخذ مثال عن رابط لصورة عشوائية :


url = "http://pyarab.com/wp-content/uploads/2016/04/Screenshot-from-2016-04-16-184920.png"

الخطوة الموالية هي إستخراج محتويات الرابط


url_response = urllib.urlopen(url)

وبمجرد حصولنا على الرد سنقوم بتحويله إلى مصفوفة numpy


img_array = np.array(bytearray(url_response.read()), dtype=np.uint8)

الأن نحن مستعدون لفك رموز الصورة


img = cv2.imdecode(img_array, -1)

دعونا الأن نرى كيف تبدو عليه الصورة ، قم بإضافة هذه الصورة وإحفظ الملف


cv2.imshow('Image From Url', img)
cv2.waitKey()

وأخير ا قم بتشغيل البرنامج


$ python read_image_from_url.py

ومن المفروض أن تحصل على نتيجة مثل التالي :

test

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation