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

نقل وإزاحة الصورة باستخدام التابع cv2.warpAffine في OpenCV | بايثون

Ali Ismael

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...