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

السؤال

نشر

قمت بتوليد مصفوفة عبارة عن نققاط سوداء وفي منتصفها نقطة بيضاء من خلال الكود التالي:

import numpy as np

data = np.zeros( (512, 512, 3), dtype=np.uint8)
data[256, 256] = [255, 255, 255]

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

هل تدعم مكتبة numpy هذا الأمر أم يجب إستعمال مكتبات أخرى مثل PIL؟

Recommended Posts

  • 1
نشر

يمكن استعمال:

  • matplotlib وهي مكتبة للرسوميات  الثابتة و المتحركة والتفاعلية
  • الوسيط interpolation لملأ الفراغات 
  • nearest نضع لون النقطة حسب أقرب نقطة أخرى لها
  • imshow يستخدم لإخراج صورة من مصفوفة
  • show يفتح العرض للصورة
from matplotlib import pyplot as plt
plt.imshow(data, interpolation='nearest')
plt.show()

يمكن أيضا استخدام PIL 

#استيراد صنف التعامل مع الصور
from PIL import Image

# شيفرتك

img = Image.fromarray(data, 'RGB')   #بناء صورة ملونة
img.save('my.png') # حفظ الملف
img.show()  # عرضه

وطريقة أخرى باستعمال scipy والدالة toimage نمرر لها المصفوفة و نطبق دالة العرض

from scipy.misc import toimage
toimage(data).show()

 

  • 1
نشر (معدل)

يمكنك استعمال دالة التحويل من مصفوفة إلى صورة array_to_img بكل سهولة و هي متوفرة بمكتبة keras

import numpy as np #تحميل مكتبة numpy   
from keras.preprocessing.image import array_to_img #تحميل دالة التحويل إلى الصورة من مكتبة كيراس   

data = np.random.rand(256, 256, 3) #خلق مصفوفة عشوائيا
b=array_to_img(data)  # التحويل من مصفوفة إلى الصورة  

b #عرض الصورة

index.png.2951e1a6e64384bba8083902954c1170.png

لتثبيت مكتبةkeras  و الاستفادة من مزاياها العديدة التي تجدها هنا قم بالأمر الآتي:

pip install keras

 

تم التعديل في بواسطة Ayoub Souad
  • 1
نشر

من أشهر المكتبات الخاصة بالتعامل مع الصور هي opencv، يمكنك استعمال تابع خاص لعرض الصور أو حتى يمكنك حفظ الصورة إلى ملف، كمثال على ذلك:

import numpy as np

data = np.zeros( (512, 512, 3), dtype=np.uint8)
data[256, 256] = [255, 255, 255]


import cv2

img = data / 255
cv2.imwrite('color_img.jpg', img)
cv2.imshow("image", img)

طبعاً هنا في البداية علينا تضمين المكتبة و التي لها الاسم cv2.

التوابع تستعمل تمثيل الصور كأرقام حقيقية بين الصفر و الواحد و بالتالي علينا فقط التقسيم على أكبر قيمة و التي هي 255 للتحويل إلى هذا التمثيل.

يمكن استعمال التابع imwrite لحفظ الصورة إلى ملف.

يمكن استعمال التابع imshow لعرض الصورة.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...