Ali Ismael نشر 2 نوفمبر 2021 أرسل تقرير مشاركة نشر 2 نوفمبر 2021 لدي مجموعة من النقاط الحدودية التي تمثل كائن، وأريد رسمه كإطار contour، كيف نقوم بذلك؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ali Haidar Ahmad نشر 2 نوفمبر 2021 أرسل تقرير مشاركة نشر 2 نوفمبر 2021 أول خطوة عليك أن تقوم بتمثيل هذه النقاط كقائمة بالشكل التالي: 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) والنتيجة: اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ahmed Sharshar نشر 9 نوفمبر 2021 أرسل تقرير مشاركة نشر 9 نوفمبر 2021 يمكنك تحديد النقاط الحدودية سواء الداخلية أو الخاريجية للشكل ثم رسمة بالطريقة التي تعجبك كالتالي: _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 لتشمل كل الحدود ثم تحديد لون وسمك الخط. وتظهر بعد تشغيلها هكذا: اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Ali Ismael
لدي مجموعة من النقاط الحدودية التي تمثل كائن، وأريد رسمه كإطار contour، كيف نقوم بذلك؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.