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

السؤال

Recommended Posts

  • 0
نشر

تحتاج ببساطة إلى ترميز "encode " المصفوفة بنفس تنسيق الصورة من خلال الدالة cv2.imencode، ثم استخدام الدالة tobytes إذا كنت تريدها بنفس التنسيق.

import cv2
image = cv2.imread('image.png')
# ترميزها
_, encoded_image = cv2.imencode('.png', image)
# bytes تحويلها إلى 
content = encoded_image.tobytes()
  • 0
نشر

بالاضافة للاجابة السابقة، يمكنك كذلك استخدام المكتبة base مع opencv لتحقيق ذلك:

#قراءة المكتبات
import cv2
import base64

cap = cv2.VideoCapture(0)
#استدعاء الصورة
retval, image = cap.read()
#تحويل الصورة
retval, buffer = cv2.imencode('.jpg', image)
jpg_as_text = base64.b64encode(buffer)
print(jpg_as_text)
cap.release()

ويمكنك التعامل مع الصورة وتحويلها الى bytes باستخدام PIL وسواء استخدمت opencv  أو PIL فكلاهما يقوم بتحويل الوصرة الى bytes من نوع string كالتالي:

#استدعاء المكتبات
import io
from PIL import Image

#قراءة الصورة
im = Image.open('test.jpg')
#تحجيم الصورة
im_resize = im.resize((500, 500))
#تحويلها الي بايتات
buf = io.BytesIO()
im_resize.save(buf, format='JPEG')
byte_im = buf.getvalue()

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...