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

رسم خط على صورة في OpenCV | بايثون

Ali Ismael

السؤال

Recommended Posts

  • 1

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

cv2.line(image, start_point, end_point, color, thickness)

حيث أن الوسيط الأول يمثل الصورة، والوسيط الثاني يمثل إحداثيات نقطة البداية للخط (X coordinate value, Y coordinate value)، والوسيط الثالث إحداثيات نقطة النهاية، بينما الوسيط الرابع يمثل لون الخط المطلوب، أما الرابع فهو سماكته بواحدة البكسل. مثال:

import cv2
import numpy as np
# تحديد إحداثيات نقطة البداية
x1, y1 = 0, 0
# نقطة النهاية
x2, y2 = 200, 400
# إنشاء صورة عشوائية
image = np.ones((height, width)) * 255
# تحديد سمك الخط
line_thickness = 2
# رسم الخط
cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), thickness=line_thickness)

مثال آخر:

import cv2
# مسار الصورة
path = '/content/test1 closedeye.jpg'
# قراءتها
image = cv2.imread(path)
# اسم للنافذة التي ستعرض ضمنها الصورة
window_name = 'Image'
# إحداثيات نقطة البدء
# الزاويا العليا اليسارية
start_point = (0, 0)
# إحداثيات النهاية (250, 250)
end_point = (250, 250) # الزاويا السفلى اليمينية
# تحديد اللون الأحمر
color = (0, 0, 255)
# سمك الخط
thickness = 2
# تطبيق التابع
image = cv2.line(image, start_point, end_point, color, thickness)
# عرض الصورة
#cv2.imshow(window_name, image)
from google.colab.patches import cv2_imshow
cv2_imshow(image)

الخرج:
index.png.3302b732ca4c6f1112e1534a21cc670c.png

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

  • 1

يمكنك استخدام الدالة line وهي كالتالي:

ine(img, pt1, pt2, color, thickness)

حيث img هي الصورة المراد رسم الخط بها، بينما pt1 هي نقطة بداية الخط و pt2 هي نقطة نهايته. color هو لون الخط و thickness هو سمك الخط وكلاهما يمكنك تغييرهما تبعا لشكل الخط الذي تريده.

المثال التالي يوضح رسم الخط على صوره من اليمين لليسار:


# استداء المكتبة
import cv2

# مسار الصورة
path = r'C:\Users\ahmed\Desktop\test.png'

# قراءه الصورة بشكل رمادي
image = cv2.imread(path, 0)

# اسم النافذه التي ستعرض الصورة
window_name = 'Image'

# نقطة البداية (225, 0)
# أعلى يمين الصورة
start_point = (225, 0)

# نقطة النهاية (0, 225)
#اسفل يسار الصورة
end_point = (0, 225)

# لون أسود للخط
color = (0, 0, 0)

# سمك الخط
thickness = 5

# استخدام الطريقة
image = cv2.line(image, start_point, end_point, color, thickness)

# عرض الصورة
cv2.imshow(window_name, image)

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...