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

السؤال

Recommended Posts

  • 0
نشر

أول خطوة عليك أن  تقوم بتمثيل هذه النقاط كقائمة بالشكل التالي:

L=[[x1,y1],[x2,y2],[x3,y3],[x4,y4],[x5,y5],[x6,y6],...[xn,yn]]

حيث x و y هي الإحداثيات. ثم عليك أن تقوم بتحويلها إلى مصفوفة نمباي كما يلي:

np.array(L,dtype=np.int32)

وأخيراً نقوم برسمها من خلال الدالة drawContours:

cv.DrawContours(src, contour, contourIndex, colour, thickness)

الوسيط الأول يمثل الصورة، والثاني هو الإطارات المطلوب رسمها، والثالث هو فهرس الإطارات ونعطيه القيمة -1 لرسم كل الإطارات أو رقم إطار محدد لرسمه فقط، ثم اللون ثم السماكة. مثال:

import cv2
import numpy as np
from google.colab.patches import cv2_imshow
# تحديد إحداثيات نقاط الكائن الحدودية
contour=np.array([[100,50],[150,80],[200,200],[288,172],[250,200]],dtype=np.int32)
# إنشاء خلفية رمادية (صورة) لرسم الإطار ضمنها
drawing = np.zeros([300, 300],np.uint8)+230 # 300*300 image
# رسم الإطار
cv2.drawContours(drawing,[contour],0,0,2)
# عرضه
cv2_imshow(drawing)

والنتيجة:
index.png.94b5f800f46b1c3e3a6a86a9974aef5d.png
 

  • 0
نشر

يمكنك تحديد النقاط الحدودية سواء الداخلية أو الخاريجية للشكل ثم رسمة بالطريقة التي تعجبك كالتالي:

 _ret, contours, hierarchy = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 
  cv2.drawContours(img,contours , -1, (255,0,0), 1)

اما اذا كانت لديك النقاط الحدودية مسبقا فيمكنك رسمها مباشرة بعد تحويلها الى صيغة numpy  هكذا:

cv2.drawContours(image, contours, -1, (0, 255, 0), 3)

حيث image هي الصورة التي تريد الرسم عليها، contours هي ال numpy التي تحوي النقاط الحدودية و -1 لتشمل كل الحدود ثم تحديد لون وسمك الخط.

وتظهر بعد تشغيلها هكذا:

618aab6bb6303_Screenshot2021-11-09190913.png.ee093b952689845b50da9218ce01b6ef.png

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...