Вы когда-нибудь задумывались, как выполнять различные методы манипулирования изображениями с помощью OpenCV? В этой статье мы углубимся в ряд методов и предоставим примеры кода, демонстрирующие, как добиться различных эффектов и преобразований изображений. Являетесь ли вы начинающим энтузиастом компьютерного зрения или опытным разработчиком, желающим расширить свои навыки обработки изображений, это руководство предоставит вам необходимые знания.
-
Изменение размера изображения.
Изменение размера изображения — распространенная задача при манипуляциях с изображениями. Он позволяет изменять размеры изображения, увеличивая или уменьшая его. Вот пример фрагмента кода с использованием функцииresizeOpenCV:import cv2 # Load the image image = cv2.imread('input.jpg') # Define the new dimensions new_width = 500 new_height = 300 # Resize the image resized_image = cv2.resize(image, (new_width, new_height)) # Save the resized image cv2.imwrite('resized_image.jpg', resized_image) -
Поворот изображения.
Поворот изображения позволяет изменить его ориентацию. OpenCV предоставляет удобную функциюgetRotationMatrix2Dдля поворота изображения. Вот пример поворота изображения на 45 градусов:import cv2 import numpy as np # Load the image image = cv2.imread('input.jpg') # Determine the image center height, width = image.shape[:2] center = (width / 2, height / 2) # Define the rotation angle angle = 45 # Perform the rotation rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0) rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height)) # Save the rotated image cv2.imwrite('rotated_image.jpg', rotated_image) -
Размытие изображения.
Размытие изображения может быть полезно для уменьшения шума или сокрытия конфиденциальной информации. OpenCV предлагает различные фильтры размытия, такие как размытие по Гауссу и медианное размытие. Вот пример применения размытия по Гауссу:import cv2 # Load the image image = cv2.imread('input.jpg') # Apply Gaussian blur blurred_image = cv2.GaussianBlur(image, (5, 5), 0) # Save the blurred image cv2.imwrite('blurred_image.jpg', blurred_image) -
Обрезка изображения.
Обрезка изображения предполагает извлечение определенной интересующей области из исходного изображения. OpenCV позволяет вам определить координаты нужного региона и соответствующим образом извлечь их. Вот пример обрезки изображения:import cv2 # Load the image image = cv2.imread('input.jpg') # Define the region of interest (ROI) x, y, width, height = 100, 100, 300, 200 # Crop the image cropped_image = image[y:y+height, x:x+width] # Save the cropped image cv2.imwrite('cropped_image.jpg', cropped_image) -
Фильтрация изображений.
Фильтрация изображений – это метод, используемый для улучшения или изменения изображения путем применения различных фильтров. OpenCV предоставляет несколько функций фильтра, включая известный оператор Собеля для обнаружения границ. Вот пример применения оператора Собеля:import cv2 # Load the image in grayscale image = cv2.imread('input.jpg', 0) # Apply the Sobel operator sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3) sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3) # Save the result cv2.imwrite('sobel_x.jpg', sobel_x) cv2.imwrite('sobel_y.jpg', sobel_y)
Это всего лишь несколько примеров многих методов манипулирования изображениями, которые вы можете выполнить с помощью OpenCV. Не забудьте изучить документацию OpenCV, чтобы узнать о более продвинутых методах и возможностях. Приятного кодирования!