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

3. Edge Detection

3. Edge detection

3. Edge detection3.1.OpenCV image edge detection3.1.1. The purpose of image edge detection3.1.2.Canny edge detection algorithm3.1.3. How do we implement it in OpenCV? It's very simple, divided into three steps3.2 Actual effect display

3.1.OpenCV image edge detection

3.1.1. The purpose of image edge detection

Significantly reduce the data size of the image while retaining the original image attributes. There are currently many algorithms for edge detection. Although the Canny algorithm is old, it can be said that it is a standard algorithm for edge detection and is still widely used in research.

3.1.2.Canny edge detection algorithm

Among currently commonly used edge detection methods, the Canny edge detection algorithm is one of the methods that is strictly defined and can provide good and reliable detection. Because it has the advantages of meeting the three criteria of edge detection and being simple to implement, it has become one of the most popular algorithms for edge detection.

The Canny edge detection algorithm can be divided into the following 5 steps:

(1). Use Gaussian filter to smooth the image and filter out noise

(2). Calculate the gradient intensity and direction of each pixel in the image

(3). Apply non-maximum suppression to eliminate spurious responses caused by edge detection

(4). Apply double-threshold detection to determine real and potential edges

(5). Finally complete edge detection by suppressing isolated weak edges.

3.1.3. How do we implement it in OpenCV? It's very simple, divided into three steps

(1). Image grayscale: gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

(2). Gaussian filtering (noise reduction processing) image: GaussianBlur (src, ksize, sigmaX [, dst [, sigmaY [, borderType]]]) -> dst

Parameter meaning:

src: input image, usually a grayscale image

ksize: Gaussian kernel size

sigmaX: Gaussian kernel standard deviation in the X direction

sigmaY: Gaussian kernel standard deviation in Y direction

dst: processed image

(3). The Canny method is used to process the image: edges=cv2.Canny(image, threshold1, threshold2[, apertureSize[, L2gradient]])

Parameter meaning:

edges: calculated edge image

image: The calculated edge image, usually the image obtained after Gaussian processing

threshold1: the first threshold in the process

threshold2: the second threshold during processing

apertureSize: aperture size of Sobel operator

L2gradient: The flag for calculating the gradient magnitude of the image. The default value is False. If True, the more accurate L2 norm is used for the calculation (that is, the sum of the squares of the derivatives in both directions and then the square root), otherwise the L1 norm is used (the absolute values of the derivatives in the two directions are directly added).

3.2 Actual effect display

Source code path:

/home/pi/DOGZILLA_Lite_class/4.Open Source CV/C.Image_Processing_Text_Drawing/03_Edge_Detection1.ipynb

/home/pi/Rider-pi_class/4.Open Source CV/C.Image_Processing_Text_Drawing/03_Edge_Detection2.ipynb

Method 1:

​x
import cv2
import numpy as np
import random
import matplotlib.pyplot as plt
​
img = cv2.imread('yahboom.jpg',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
#cv2.imshow('src',img)
#canny 1 gray 2 高斯 3 canny  canny 1 gray 2 gauss 3 canny
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgG = cv2.GaussianBlur(gray,(3,3),0)
dst = cv2.Canny(img,50,50) #图片卷积——》th Image convolution——》th
# cv2.imshow('dst',dst)
# cv2.waitKey(0)
xxxxxxxxxx
img_bgr2rgb1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb1)
plt.show()

xxxxxxxxxx
img_bgr2rgb1 = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb1)
plt.show()

Method 2:

xxxxxxxxxx
import cv2
import numpy as np
import random
import math
img = cv2.imread('yahboom.jpg',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
# cv2.imshow('src',img)
# sobel 1 算子模版 2 图片卷积 3 阈值判决  sobel 1 operator template 2 image convolution 3 threshold decision
# [1 2 1          [ 1 0 -1
#  0 0 0            2 0 -2
# -1 -2 -1 ]       1 0 -1 ]
              
# [1 2 3 4] [a b c d] a*1+b*2+c*3+d*4 = dst
# sqrt(a*a+b*b) = f>th
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst = np.zeros((height,width,1),np.uint8)
for i in range(0,height-2):
    for j in range(0,width-2):
        gy = gray[i,j]*1+gray[i,j+1]*2+gray[i,j+2]*1-gray[i+2,j]*1-gray[i+2,j+1]*2-gray[i+2,j+2]*1
        gx = gray[i,j]+gray[i+1,j]*2+gray[i+2,j]-gray[i,j+2]-gray[i+1,j+2]*2-gray[i+2,j+2]
        grad = math.sqrt(gx*gx+gy*gy)
        if grad>50:
            dst[i,j] = 255
        else:
            dst[i,j] = 0
# cv2.imshow('dst',dst)
# cv2.waitKey(0)
xxxxxxxxxx
import matplotlib.pyplot as plt
​
img_bgr2rgb1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb1)
plt.show()

xxxxxxxxxx
img_bgr2rgb1 = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.imshow(img_bgr2rgb1)
plt.show()

Image Binarization
Line drawing

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/中文