yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
DOGZILLA-Lite📖
1. Get started quickly
  • 0. Notes (Must Read)new
  • 1. Main interface function experience (cm5)new
  • 1. Main interface function experience(cm4)
  • 2. APP control experience
  • 3. Web page image transmission control
  • 4. LLM-Embodied Intelligence Capabilities
  • 5. LLM-Smart Dog Capabilities
2. Basic operations of Raspberry Pi system
  • 1.SSH remote login
  • 2.VNC remote login desktop
  • 3.Remote file transfer
  • 4.JupyterLab environment construction and use
  • 5.Burn the system image
  • 6.Connect to WiFi
  • 7.Close large programs
  • 8.Raspberry Pi system expansion
3. Basic control of the dogzilla
  • 0. Introduction to DOGZILLA-Lite
  • 1. Screen display control
  • 2. Record Audio
  • 3. Play Audio
  • 4. Text to audio
  • 5. Voice to text
  • 6. Record Video
  • 7. Play Video
  • 8. Video recording function
  • 9. Read the posture angle
  • 10. Battery level reading
  • 11. Read the servo angle
  • 12. Screen display of expressions
  • 13. Calibration of the robot dog
  • 14. Burn the firmware
  • 15. Analysis of common problems
4. Motion control of the dogzilla
  • 1. The dog's forward, backward, left, and right movements and gait
  • 2. Dog Spin
  • 3. The dog adjusts its height and posture
  • 4. Dog periodic translation and rotation
  • 5. Self-balancing mode
  • 6. The dog performs preset actions
  • 7. Single Leg Control
  • 8. Robotic arm control
  • 9. Teaching mode
  • 10. Group Control Performance
  • 11. Teaching demonstration onlinenew
5. Open Source CV
A. Getting started with OpenCV
  • 1. Introduction to OpenCV
  • 2. OpenCV image reading and display
  • 3. OpenCV image writing
  • 4. OpenCV Image Quality
  • 5.OpenCV pixel operations
B. OpenCV geometric transformation
  • 1. Image scaling
  • 2. Image cutting
  • 3. Image translation
  • 4. Image mirroring
  • 5. Affine Transformation
  • 6. Image Rotation
  • 7. Perspective Transformation
C. OpenCV image processing and drawing text segments
  • 1. Grayscale processing
  • 2. Image Binarization
  • 3. Edge Detection
  • 4. Line drawing
  • 5. Rectangle and circle drawing
  • 6. Text and picture drawing
D. Image beautification
  • 1. Color Image Histogram
  • 2. Histogram Equalization
  • 3. Image repair
  • 4. Brightness enhancement
  • 5. Skin whitening
  • 6. Gaussian mean filtering
  • 7. Median Filter
6. AI recognition of the dogzilla
  • 1. Camera driver tutorial
  • 2. Color recognition
  • 3. HSV value test
  • 4. Object Recognition
  • 5. QR code recognition
  • 6. License Plate Recognition
  • 7. Human Pose Estimation
  • 8. Yolo detection
  • 9. Face Detection
  • 10. Human face mask
  • 11. Face effects
  • 12. 3D Object Recognition
  • 13. Paintbrush
  • 14. Finger recognition
  • 15. Gesture Recognition
  • 16. Age and gender identification
  • 17. Background Segmentation
  • 18. Facial Recognitionnew
  • 19. Emotion Recognitionnew
  • 20. Motion Detectionnew
7. Dogzilla AI Interaction
  • 1. Color patrol
  • 2. Line patrol and obstacle removal
  • 3. Color tracking
  • 4. Ball tracking
  • 5. The ball follows
  • 6. QR code recognition exercise
  • 7. Face tracking
  • 8. Remote control
  • 9. Gesture tracking
  • 10. Gesture-controlled movement
  • 11. You Drop, I Pick
  • 12. Independent football exercise
  • 13. Human Body Followingnew
8. AI large model interaction
  • 0.AI large model principle foundation
  • 1.Large model premise use configuration
  • 2.Q&A
  • 3.Embodied intelligence
  • 4.Smart dog
  • 5.Picture to text
  • 6.Intelligent interaction
  • 7.Voice intelligent vision
  • 8.Playing football
  • 9.Block gripping
  • 10.Line tracking and obstacle removal
  • 11.Control object tracking
Download
  • System_File
  • Code
  • Firmware
  • Communication interface
  • Instruction Manual
  • Appendix
Download ZIP

Welcome to DOGZILLA-Lite repository

5. Affine Transformation

5. Affine Transformation

5. Affine Transformation5.1. Affine transformation5.2. Actual effect display

 

5.1. Affine transformation

Affine Transformation (Affine Transformation or Affine Map) is a linear transformation from two-dimensional coordinates (x, y) to two-dimensional coordinates (u, v). Its mathematical expression is as follows:

img

The corresponding homogeneous coordinate matrix representation is:

img

Affine transformation preserves the "straightness" of two-dimensional graphics (a straight line remains a straight line after an affine transformation) and "parallelism" (the relative position relationship between straight lines remains unchanged, parallel lines remain parallel lines after an affine transformation, and the position order of points on the straight line does not change). Three pairs of non-collinear corresponding points determine a unique affine transformation.

The rotation and stretching of an image is the image affine transformation. Affine transformation also requires an M matrix. However, since affine transformation is relatively complex, it is generally difficult to find this matrix directly. OpenCV provides a function to automatically solve M based on the correspondence between the three points before and after the transformation. This function is

M=cv2.getAffineTransform(pos1,pos2), where the two positions are the corresponding position relationship before and after the transformation. The output is the affine matrix M. Then use the function cv2.warpAffine().

Let's take a look at the entire affine transformation and perspective transformation usage diagram: Two methods of image transformation cv2.warpAffine and cv2.warpPerspective

img

5.2. Actual effect display

Let's take vertical transformation as an example to see how it is written in Python:

Code path:

/home/pi/DOGZILLA_Lite_class/4.Open Source CV/B.Geometric_Transformations/05_Affine_Transformation.ipynb

xxxxxxxxxx
import cv2
import numpy as np
import matplotlib.pyplot as plt
​
img = cv2.imread('yahboom.jpg',1)
​
img_bgr2rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb)
plt.show()
# cv2.waitKey(0)

img

imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
#src 3->dst 3 (左上角,左下角,右上角 Top left, bottom left, top right)
matSrc = np.float32([[0,0],[0,height-1],[width-1,0]])
matDst = np.float32([[50,50],[300,height-200],[width-300,100]])
#组合 combination
matAffine = cv2.getAffineTransform(matSrc,matDst)# mat 1 src 2 dst
dst = cv2.warpAffine(img,matAffine,(width,height))
img_bgr2rgb = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb)

img

Image mirroring
Image Rotation

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文