Home  >  Article  >  Backend Development  >  How to measure angles on pictures using Python

How to measure angles on pictures using Python

PHPz
PHPzOriginal
2023-08-26 12:09:162899browse

How to measure angles on pictures using Python

How to use Python to measure angles on pictures

Overview:
Image processing is an important task in the field of computer vision, in which angle measurement is a common requirement . In this article, we will use Python language to measure angles on pictures and demonstrate the process through code examples.

Step 1: Import the necessary libraries
First, we need to import the necessary Python libraries. Among them, OpenCV is a widely used computer vision library that provides many image processing and computing tools. NumPy is a commonly used scientific computing library that provides the foundation for efficient numerical calculations.

import cv2
import numpy as np

Step 2: Load the image
Next, we need to load the image. Use OpenCV's imread function to easily load images. Use the image path as a parameter of the function, and the function will return a NumPy array representing the image.

image_path = 'path_to_your_image.jpg'
image = cv2.imread(image_path)

Step 3: Image preprocessing
Before measuring the angle of the image, we need to perform some preprocessing on the image. In order to reduce the impact of noise and improve the accuracy of measurements, we can convert the picture to a grayscale image and apply a Gaussian blur.

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)

Step 4: Edge Detection
In order to measure the angle in the picture, we need to detect the edges in the picture. This can be achieved by using the Canny edge detection algorithm.

edges = cv2.Canny(blurred, 50, 150)

Step 5: Contour Detection
Next, we need to detect the contours in the picture. We can use OpenCV's findContours function to achieve this operation.

contours, _ = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

Step 6: Find the best-fitting rectangle
In angle measurement, we usually use the best-fitting rectangle to estimate the angle. By finding the best-fitting rectangle for all contours, we can get an approximate angle value.

best_fit_rect = None
max_area = 0

for contour in contours:
    (x, y, w, h) = cv2.boundingRect(contour)
    area = w * h
    
    if area > max_area:
        max_area = area
        best_fit_rect = cv2.minAreaRect(contour)

angle = best_fit_rect[-1]

Step 7: Display the results
Finally, we can display the measured angle on the picture and save the result as a new picture.

result_image = image.copy()
cv2.putText(result_image, f"Angle: {angle}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow("Result", result_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Summary:
By using the Python language and the OpenCV library, we can easily measure the angle of the picture. By loading images, preprocessing, edge detection, contour detection and fitting rectangles, we can get an approximate angle value and display the result on the image. This method has practical applications in many fields, such as engineering measurement, medical image analysis, etc.

Although this article provides a basic angle measurement example, in real-world applications, additional challenges and complications may arise. According to specific needs, we can modify and optimize the code according to the actual situation.

The above is the detailed content of How to measure angles on pictures using Python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn