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

تحويل تنسيق صورة opencv إلى تنسيق صورة PIL والعكس في بايثون

Ali Ismael

السؤال

Recommended Posts

  • 1

تستخدم Pillow و OpenCV تنسيقات مختلفة من الصور. لذلك لا يمكنك فقط قراءة صورة في Pillow ومعالجتها في OpenCV. تستخدم الوسادة تنسيق RGB ، ويستخدم OpenCV تنسيق BGR. لذلك ، أنت بحاجة إلى محول للتحويل من تنسيق إلى آخر. وبالتالي للتحويل من صورة PIL إلى OpenCV استخدم:

import cv2
import numpy as np
from PIL import Image
pil_image=Image.open("im.jpg") # PIL فتح الصورة باستخدام
#  1 إجراء التحويل
# pil_image --> numpy array
numpy_image=numpy.array(pil_img)  
# 2 إجراء التحويل 
# openCV2 image --> numpy_image + BGR إلى RGB نحول النظام اللوني من 
opencv_image=cv2.cvtColor(numpy_image, cv2.COLOR_RGB2BGR) 

وللتحويل المعاكس أي من OpenCV إلى صورة PIL نستخدم التابع fromarray:

import cv2
import numpy as np
from PIL import Image
# openCV قراءة الصورة من خلال
opencv_image=cv2.imread("im.jpg")
# BGR --> RGB
color_coverted = cv2.cvtColor(opencv_image, cv2.COLOR_BGR2RGB)
# openCV2 --> PIL
pil_image=Image.fromarray(color_coverted)
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

للتحويل من opencv ال PIL كل ما عليك هو استخدام Image.fromarray ، اما من أجل العكس فكل ما عليك هو قراءة ال Numpy array الناتج عن الصورة فقط كالتالي:

import cv2
import numpy as np
from PIL import Image

img = cv2.imread("path/to/img.png")

# تغيير الالوان لقراءتها بشكل صحيح
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
im_pil = Image.fromarray(img)

# لعكس العملية
im_np = np.asarray(im_pil)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...