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

وضع نص على الصورة في OpenCV|بايثون

Ali Ismael

السؤال

Recommended Posts

  • 1

يمكنك استخدام الدالة putText:

cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)

الوسيط الأول هو الصورة المطلوب وضع النص عليها، أما الوسيط الثاني فهو النص المطلوب وضعه، أما الوسيط الثاني فهي إحداثيات الركن الأيسر السفلي من السلسلة النصية في الصورة. يتم تمثيل الإحداثيات على شكل مجموعات من قيمتين، أي (قيمة إحداثي x، قيمة إحداثي y). أما font فيشير إلى نوع الخط. بعض أنواع الخطوط: FONT_HERSHEY_SIMPLEX, FONT_HERSHEY_PLAIN. أما الوسيط fontScale فهو عامل مقياس الخط الذي يتم ضربه في الحجم الأساسي الخاص بالخط. أما الوسيط color فهو يمثل لونها. أما الوسيط thickness فيمثل سماكة الخط بالبكسل. أما lineType فهذه معلمة اختيارية تعطي نوع الخط الذي سيتم استخدامه. أما آخر وسيط فهو وسيطة اختيارية. عندما تفعله True، يكون أصل بيانات الصورة في الزاوية اليسرى السفلية. خلاف ذلك ، يكون في الزاوية العلوية اليسرى. مثال:

import cv2
# قراءة الصورة
image = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg')
# اسم النافذة التي يتم عرض الصورة فيها 
window_name = 'Image'
# الخط
font = cv2.FONT_HERSHEY_SIMPLEX
# الإحداثيات
org = (100, 50)
# fontScale
fontScale = 1
# red color in BGR
color = (0, 0, 255)
# السماكة
thickness = 2
# استخدام cv2.putText() 
image = cv2.putText(image, 'OpenCV', org, font,
                    fontScale, color, thickness, cv2.LINE_AA)
# عرض
cv2.imshow(window_name, image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Untitled.png.5303f8c8c042ed758c86ef2016505ddc.png

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

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

cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)

حيث تقوم بأخذ الصورة سواء بتحميلها او صنعها ووضع الكلام الذي تريده بتنسيقاته مثل اللون سمك  الخط وكذلك مكان الكلام ، المثال التالي يوضح كيفية وضع الكلام على صوره صنعناها:

import numpy as np
import cv2
#اختيار نوع الخط
font = cv2.FONT_HERSHEY_SIMPLEX
# صنع صورة سوداء
img = np.zeros((512,512,3), np.uint8)
#كتابة الكلام على الصورة
cv2.putText(img,'Hack Projects',(10,500), font, 1,(255,255,255),2)
#عرض الصورة
cv2.imshow("img",img)

cv2.waitKey(0)

text2.jpg.88296eb6c0a2d09659366d42fdb11640.jpg

يمكنك كذلك استخدامها بشكل مستمر داخل while بحيث تقوم بتغيير الكلام او ايقافه كالتالي:

import cv2
path = "C:/Users//Desktop/test.jpg"

img = cv2.imread(path)

font = cv2.FONT_HERSHEY_SIMPLEX

i = 10
while(1):
    cv2.imshow('img',img)

    k = cv2.waitKey(33)
    if k==27:    # Esc اضغط للخروج
        break
    elif k==-1:  # في العادي -1 ترجع لذا نكمل
        continue
    else:
        print (k) # غير ذلك اطبع القيمة على الصورة
       cv2.putText(img, chr(k), (i, 50), font, 1, (0, 255, 0), 1, cv2.LINE_AA)
        i+=15

cv2.waitKey(0)
cv2.destroyAllWindows()

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...