Ali Ismael نشر 25 أكتوبر 2021 أرسل تقرير نشر 25 أكتوبر 2021 كيف يمكنني أن أضيف إطار إلى الصورة؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 25 أكتوبر 2021 أرسل تقرير نشر 25 أكتوبر 2021 يمكنك استخدام الدالة copyMakeBorder للقيام بالمطلوب: cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value) حيث أن الوسيط الأول هو الصورة، والثاني هو عرض الإطار العلويَ الذي سيضاف إلى الصورة مقدراً بالبكسل، والثالث عرض الإطار السفلي، والرابع اليساري والخامس اليميني، أما borderType فهو نوع الحدود المراد إضافتها. يتم تعريفه بواسطة واصفات مثل: cv2.BORDER_CONSTANT: يضيف حداً ملوناً ثابتاً (نضع قيمة للوسيط value). cv2.BORDER_REFLECT: ستكون الحدود انعكاساً عكسياً لعناصر الحدود. أي مثلاً إذا كانت الصورة تحتوي على أحرف "abcdefg" ، فسيكون الإخراج "gfedcba | abcdefg | gfedcba". cv2.BORDER_REFLECT_101 أو cv2.BORDER_DEFAULT: يقوم بنفس عمل cv2.BORDER_REFLECT ولكن مع تغيير طفيف. أي مثلاً إذا كانت الصورة تحتوي على أحرف "abcdefgh" ، فسيكون الإخراج "gfedcb | abcdefgh | gfedcba". cv2.BORDER_REPLICATE: يكرر العنصر الأخير. لنفترض إذا كانت الصورة تحتوي على أحرف "abcdefgh" ، فسيكون الإخراج "aaaaa | abcdefgh | hhhhh". أما الوسيط الأخير فهي وسيطة اختيارية تحدد لون الحدود إذا كان نوع الحد هو cv2.BORDER_CONSTANT. مثال: import cv2 # تحديد مسار الصورة path = r'/content/test.jpg' # قراءة الصورة image = cv2.imread(path) # إضافة الإطار سماكته 7 بكسل بكل الاتجاهات image = cv2.copyMakeBorder(image, 7, 7, 7, 7, cv2.BORDER_CONSTANT, None, value = (0,0,255)) # عرض الصورة from google.colab.patches import cv2_imshow cv2_imshow(image) النتيجة: اقتباس
1 Ahmed Sharshar نشر 26 أكتوبر 2021 أرسل تقرير نشر 26 أكتوبر 2021 (معدل) يمكنك استخدام الدالة copyMakeBorder لعمل الإطار كما في الإجابة السابقة مع امكانية تغيير شكل اللون والخط وسمك الخط ... كذلك يمكنك فعلها بطريقه يدويه عن طريق اضافة صف أو اثنثن أو أكثر من الأصفار (والتي تمثل اللون الأسود) حول الصورة لتكون إطارا لها. كذلك يمكنك تغيير سمك الإطار بزيادة أو تقليل عدد الصفوف من الأصفار كذلك اختيار أي درجة لون تريد ليتم ملئ قيمتها في الإطار، الكود التالي يوضح هذا: import cv2 import numpy as np #مكان الصورة img=cv2.imread("C:\\Users\\ahmed\\Desktop\\img_src.jpg") #أبعاد الصورة h,w=img.shape[0:2] #زيادة أبعاد الصورة لوضع الإطار base_size=h+20,w+20,3 # ملئ الإطار بالأصفار base=np.zeros(base_size,dtype=np.uint8) cv2.rectangle(base,(0,0),(w+20,h+20),(255,255,255),30) base[10:h+10,10:w+10]=img cv2.imwrite('C:\\Users\\ahmed\\Desktop\\border.png',img) وتظهر هكذا: تم التعديل في 26 أكتوبر 2021 بواسطة Ahmed Sharshar اقتباس
السؤال
Ali Ismael
كيف يمكنني أن أضيف إطار إلى الصورة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.