Ali Ismael نشر 13 أكتوبر 2021 أرسل تقرير نشر 13 أكتوبر 2021 (معدل) لدي صورة وأريد رسم مستطيل على ال regions of interest في الصورة الخاصة بي، كيف يمكنني القيام بذلك؟ تم التعديل في 13 أكتوبر 2021 بواسطة Ali Ismael 1 اقتباس
1 Ali Haidar Ahmad نشر 13 أكتوبر 2021 أرسل تقرير نشر 13 أكتوبر 2021 يمكنك استخدام التابع rectangle الذي يقوم برسم مستطيل على الصورة عن طريق المتغيرات التالية: cv2.rectangle(image, start_point, end_point, color, thickness) x1,y1 ------ | | | | | | --------x2,y2 الوسيط الأول هو الصورة التي تريد الرسم عليها، أما الثاني فهو نقطة بداية المستطيل حيث يمثل إحداثيات الزاوية العليا اليسارية من المستطيل، أما الوسيط الثالث فيمثل الزاويا السفلى اليمينية للصورة وبالتالي عن طريق تحديد هذين الإحداثيين يتم رسم المستطيل على الصورة. والوسيط الرابع هو لون حدود المستطيل. أما الوسيط الأخير فهو سماكة خط حدود المستطيل بالبكسل. على سبيل المثال لنفرض أن ال ROI لدي هي صورة الوجه، وبالتالي يكون: import numpy as np import cv2 from matplotlib import pyplot as plt from google.colab.patches import cv2_imshow img = cv.imread('/content/٢٠٢٠٠٧٣١_١٦٢٨٠٥.jpg') # رسم مستطيل يحدد الوجه cv2.rectangle(img,(405,370),(320,275),(0,255,0),3) cv2_imshow(img) الخرج: اقتباس
0 Ahmed Sharshar نشر 14 أكتوبر 2021 أرسل تقرير نشر 14 أكتوبر 2021 تستطيع استخدام selectROI لتحديد الأماكن التي تهتم بها ورسم الخطوط والمستطيلات حولها، وتتميز بسهولة استخدامها كما انها تمكنك من تحديد مكان أو أكثر في الصورة، المثال التالي يوضح كيفية استخدامها لاستخراج وجة شخص واحد: import cv2 import numpy as np #مكان الصورة img_path="image.jpeg" #قراءة الصورة img_raw = cv2.imread(img_path) #استخدام الدالة roi = cv2.selectROI(img_raw) #اظهار المكان print(roi) #قص المنطقة التي تم تحديدها roi_cropped = img_raw[int(roi[1]):int(roi[1]+roi[3]), int(roi[0]):int(roi[0]+roi[2])] #اظهار الصورةالمقصوصة cv2.imshow("ROI", roi_cropped) #حفظ الصورة المقصوصة cv2.imwrite("crop.jpeg",roi_cropped) cv2.waitKey(0) وتظهر كالتالي: يمكنك كذلك استخدامها لقص عدة أماكن مرة واحدة كالتالي: import cv2 import numpy as np img_path="image.jpeg" img_raw = cv2.imread(img_path) ROIs = cv2.selectROIs("Select Rois",img_raw) print(ROIs) crop_number=0 #تحديد الأماكن المراد قصها for rect in ROIs: x1=rect[0] y1=rect[1] x2=rect[2] y2=rect[3] #قص الأماكن img_crop=img_raw[y1:y1+y2,x1:x1+x2] cv2.imshow("crop"+str(crop_number),img_crop) cv2.imwrite("crop"+str(crop_number)+".jpeg",img_crop) crop_number+=1 cv2.waitKey(0) وتظهر هنا كالتالي: اقتباس
السؤال
Ali Ismael
لدي صورة وأريد رسم مستطيل على ال regions of interest في الصورة الخاصة بي، كيف يمكنني القيام بذلك؟
تم التعديل في بواسطة Ali Ismael2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.