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

السؤال

Recommended Posts

  • 1
نشر

في OpenCV لتطبيق انزياح على الصورة (نقل) نحتاج إلى تحديد مقدار الانزياح على المحور الأفقي والرأسي للصورة (tx ، ty)  لإنشاء مصفوفة التحويل:
حيث يشير tx إلى التحول على طول المحور x و ty يشير إلى التحول على طول المحور y ، أي عدد البكسلات التي نحتاجها للتحول بها في هذا الاتجاه. ثم نستخدم الدالة  cv2.wrapAffine لتطبيق هذا التحويل، وهذه الدالة تحتاج إلى مصفوفة  2×3 كما أنها تتطلب مصفوفة بقيم np. float32 لذا يجب تحويل مصفوفتك إلى هذا النمط قبل تمريرها إلى الدالة. في المثال التالي سنقوم بتطبيق إزاحة للصورة التالية بمقدار معين:
closedeye1.jpg.2230cb866e965c6c2c76c1b9c2f94f57.jpg

import cv2
from google.colab.patches import cv2_imshow
import numpy as np
# قراءة الصورة
img = cv2.imread("/content/closedeye1.jpg")
# تحديد عدد أسطر وأعمدة الصورة
rows,cols,_ = img.shape
# مصفوفة التحويل
# سنقوم بتطبيق تحويل بمقدار 60 على المحور الأفقي و 20 للعمودي
M = np.float32([[1,0,90],[0,1,60]]) # 3*2 مصفوفة
dst = cv2.warpAffine(img,M,(cols,rows))
# عرض الصورة
cv2_imshow(dst)

والصورة الناتجة بعد التحويل:
index.png.b349788c76937f17bca92bbd90f8eed4.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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...