Ali Ismael نشر 14 أكتوبر 2021 أرسل تقرير مشاركة نشر 14 أكتوبر 2021 لدي صورتين وأريد دمجهما بحيث يكونان متجاورتان و يشكلان صورة واحدة؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ali Haidar Ahmad نشر 14 أكتوبر 2021 أرسل تقرير مشاركة نشر 14 أكتوبر 2021 يمكنك استخدام التابع cv2.hconcat لدمج الصورتين بشكل أفقي أو cv2.vconcat لدمجهما بشكل رأسي: import cv2 import numpy as np # قراءة الصورتين im1 = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg') im2 = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test4 closedeye.jpg') # دمج الصورتين أفقياً horizontal_img = cv2.hconcat([cv2.resize(im1,(200,200)), cv2.resize(im2,(200,200))]) # دمجهما عمودياً vertical_img = cv2.vconcat([cv2.resize(im1,(200,200)), cv2.resize(im2,(200,200))]) # عرضهما cv2.imshow('Horizontal Image', horizontal_img) cv2.imshow('Vertical Image', vertical_img) cv2.waitKey(0) cv2.destroyAllWindows() الخرج: لاحظ أن ذلك ييتطلب أن تكون الصورتان بنفس الأبعاد وإلا فلن ينجح الأمر بالتأكيد.حيث قمت باستخدام الدالة resize لتعديل الأبعاد. كما يمكنك استخدام الدالة np.concatenate: import numpy as np import cv2 im1 = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg') im2 = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test4 closedeye.jpg') # أفقي vis = np.concatenate((im1, im1), axis=0) # عمودي # np.concatenate((im1, im1), axis=1) cv2.imshow('Horizontal Image', vis) cv2.waitKey(0) cv2.destroyAllWindows() اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ahmed Sharshar نشر 14 أكتوبر 2021 أرسل تقرير مشاركة نشر 14 أكتوبر 2021 يمكنك استخدام الدالة cv2.vconcat للدمج بشكل vertical أي رأسي والدالة cv2.hconcat للدمج بشكل horizontal أي أفقي. المثال التالي يوضح كيفية دمج صورتين بشكل رأسي ولهم نفس الأبعاد: import cv2 import numpy as np #قراءة الصور im1 = cv2.imread('data/src/lena.jpg') im2 = cv2.imread('data/src/rocket.jpg') #دمج الصور وعرضها im_v = cv2.vconcat([im1, im1]) cv2.imwrite('data/dst/opencv_vconcat.jpg', im_v) وتظهر كالتالي: يمكنك كذلك دمج الصور التي ليس لها أبعاد متساوية كالتالي: def vconcat_resize_min(im_list, interpolation=cv2.INTER_CUBIC): w_min = min(im.shape[1] for im in im_list) im_list_resize = [cv2.resize(im, (w_min, int(im.shape[0] * w_min / im.shape[1])), interpolation=interpolation) for im in im_list] return cv2.vconcat(im_list_resize) im_v_resize = vconcat_resize_min([im1, im2, im1]) cv2.imwrite('data/dst/opencv_vconcat_resize.jpg', im_v_resize) وتظهر كالتالي بعد تعديل أبعادهم سويا: ويمكن استخدام نفس الطرق في دمج الصور أفقيا اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Ali Ismael
لدي صورتين وأريد دمجهما بحيث يكونان متجاورتان و يشكلان صورة واحدة؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.