Fahmy Mostafa نشر 1 أغسطس 2021 أرسل تقرير نشر 1 أغسطس 2021 أعرف ان الصورة عبارة عن مصفوفة كبيرة من القيم التي تعبر عن لون كل بيكسل Pixel، ولدي مصفوفة Numpy تحتوي على قيم تعبر عن ألوان كل بيكسل في الصورة. كيف يمكنني إستخراجها في شكل صورة؟ بأي تنسيق (png ، jpeg ، bmp ...). هل توجد مكتبة جاهزة تقوم بهذا الأمر؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 1 أغسطس 2021 أرسل تقرير نشر 1 أغسطس 2021 (معدل) يمكنك القيام بذلك بالشكل التالي من خلال scipy: import scipy.misc scipy.misc.imsave('outfile.jpg', image_array) أو من خلال مكتبة PIL : from PIL import Image im = Image.fromarray(A) im.save("your_file.jpeg") أو من خلال مكتبة matplotlib : import matplotlib matplotlib.image.imsave('name.png', array) ومن خلال مكتبة png لكن قم أولاً بتحميل المكتبات : # pip install pypng # python setup.py install import png png.from_array([[255, 255, 122, 255], [0, 255, 255, 0]], 'L').save("im.png") أو من خلال مكتبة opencv: import cv2 img = ... # مصفوفتك cv2.imwrite("filename.png", img) # المسار والصورة تم التعديل في 1 أغسطس 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
0 محمد أبو عواد نشر 1 أغسطس 2021 أرسل تقرير نشر 1 أغسطس 2021 يمكنك استخدام الدالة fromarray () لإنشاء ذاكرة صورة من كائن يقوم بتصدير المصفوفة. يمكننا بعد ذلك حفظ ذاكرة الصورة هذه في الموقع المطلوب من خلال توفير المسار المطلوب واسم الملف كالتالي import numpy as np from PIL import Image array = np.arange(0, 737280, 1, np.uint8) array = np.reshape(array, (1024, 720)) im = Image.fromarray(array) im.save("filename.jpeg") نقوم أولا بإنشاء مصفوفة تخزن رموز ألوان RGB ثم نقوم بتصديرها. يمكننا تحديد التنسيق المطلوب لصورتنا في اسم الملف. يمكن أن يكون هذا بتنسيق jpeg أو png أو أي تنسيق صورة آخر شائع الاستخدام. يمكنك أيضا استخدم الدالة imageio.imwrite () لحفظ مصفوفة Numpy كصورة كالتالي import imageio import numpy as np array = np.arange(0, 737280, 1, np.uint8) array = np.reshape(array, (1024, 720)) imageio.imwrite('filename.jpeg', array) ومن الممكن استخدام الدالة matplotlib.pyplot.imsave () لحفظ مصفوفة Numpy كصورة, حيث وحدة matplotlib تحتوي على مجموعة متنوعة من الوظائف المتاحة للعمل مع الصور, على سبيل المثال import matplotlib.pyplot as plt import numpy as np array = np.arange(0, 737280, 1, np.uint8) array = np.reshape(array, (1024, 720)) plt.imsave('filename.jpeg', array) وأيضا غالبا ما تستخدم وحدة OpenCV لمعالجة الصور في Python. يمكن للدالة imwrite () من هذه الوحدة تصدير مصفوفة عددية كملف صورة كالتالي import cv2 import numpy as np array = np.arange(0, 737280, 1, np.uint8) array = np.reshape(array, (1024, 720)) cv2.imwrite('filename.jpeg', array) اقتباس
0 Ahmed Sharshar نشر 1 أغسطس 2021 أرسل تقرير نشر 1 أغسطس 2021 (معدل) هناك الكثير من المكتبات التي تسمح بتحويل الصور الي بيكسل وكذلك تحويل البيكسل الي صور، وتسمح كذلك باستقبالها سواء الوان RGB او ابيض واسود grey. أشهر المكتبات للتعامل مع الصور: opencv نستطيع باستخدامها ان نقوم اما بقراءه الصور كالتالي: # Python code to read image import cv2 img = cv2.imread("example.png", cv2.IMREAD_COLOR) cv2.imshow("Cute Kitens", img) cv2.waitKey(0) cv2.destroyAllWindows() ويمكن تبديل cv2.IMREAD_COLOR ب 0 في حالة أردنا قرائتها بالابيض والاسود. أما عن حفظ الصور فيمكن استخدامها كالتالي: # importing cv2 import cv2 # path path = r'example.png' # Using cv2.imread() method # Using 0 to read image in grayscale mode img = cv2.imread(path, 0) # Displaying the image cv2.imshow('image', img) مكتبة PIL يمكن استخدامها من أجل قراءة وكتابة الصور كالتالي: from PIL import Image import PIL # creating a image object (main image) im1 = Image.open(r"C:\Users\System-Pc\Desktop\flower1.jpg") # save a image using extension im1 = im1.save("example.jpg") تم التعديل في 1 أغسطس 2021 بواسطة Ahmed Sharshar اقتباس
0 عبدالباسط ابراهيم نشر 1 أغسطس 2021 أرسل تقرير نشر 1 أغسطس 2021 توجد العديد من المكتبات الجتهزة لعمل المطلوب وربما تجد لكل مكتبة مميزات عن غيرها وكما في التعليقات السابقة يمكنك البحث لتجد المكتبة المناسبة لكل وإضافة يمكنك استخدام المكتبة skimage بسهولة كالتالي from skimage.io import imsave imsave('Path_to_your_folder/File_name.jpg',your_array) أو يمكنك استخدام حل آخر بدون استدعاء أي مكتبة كالتالي def saveAsPNG(array, filename): import struct if any([len(row) != len(array[0]) for row in array]): raise ValueError, "المصفوفة يجب أن تحتوي عناصر من نفس الحجم" flat = []; map(flat.extend, reversed(array)) buf = b''.join([struct.pack('>I', ((0xffFFff & i32)<<8)|(i32>>24) ) for i32 in flat]) data = write_png(buf, len(array[0]), len(array)) f = open(filename, 'wb') f.write(data) f.close() ويمكنك استخدام هذه الدالة كالتالي saveAsPNG([[0xffFF0000, 0xffFFFF00], [0xff00aa77, 0xff333333]], 'test_image.png') اقتباس
السؤال
Fahmy Mostafa
أعرف ان الصورة عبارة عن مصفوفة كبيرة من القيم التي تعبر عن لون كل بيكسل Pixel، ولدي مصفوفة Numpy تحتوي على قيم تعبر عن ألوان كل بيكسل في الصورة. كيف يمكنني إستخراجها في شكل صورة؟ بأي تنسيق (png ، jpeg ، bmp ...).
هل توجد مكتبة جاهزة تقوم بهذا الأمر؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.