当前位置:实例文章 » 其他实例» [文章]OpenCv图像基本变换

OpenCv图像基本变换

发布人:shili8 发布时间:2024-12-26 08:48 阅读次数:0

**OpenCV 图像基本变换**

OpenCV 是一个强大的计算机视觉库,提供了大量的功能来处理图像和视频。其中,图像基本变换是 OpenCV 中的一个重要组成部分,它们可以帮助我们对图像进行各种操作,如旋转、翻转、裁剪等。

**1. 旋转**

OpenCV 提供了 `getRotationMatrix2D` 和 `warpAffine` 函数来实现图像的旋转。下面是一个示例:

import cv2#读取图像img = cv2.imread('image.jpg')

# 定义旋转角度和中心点angle =45center = (img.shape[1] //2, img.shape[0] //2)

# 获取旋转矩阵M = cv2.getRotationMatrix2D(center, angle,1.0)

# 旋转图像rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))

# 显示原图和旋转后图cv2.imshow('Original', img)
cv2.imshow('Rotated', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()


在这个示例中,我们首先读取一个图像,然后定义旋转角度和中心点。接着,我们使用 `getRotationMatrix2D` 函数获取旋转矩阵,最后使用 `warpAffine` 函数对图像进行旋转。

**2. 翻转**

OpenCV 提供了 `flip` 函数来实现图像的翻转。下面是一个示例:

import cv2#读取图像img = cv2.imread('image.jpg')

# 定义翻转方式(0:水平翻转,1:垂直翻转)
flip_code =0# 翻转图像flipped_img = cv2.flip(img, flip_code)

# 显示原图和翻转后图cv2.imshow('Original', img)
cv2.imshow('Flipped', flipped_img)
cv2.waitKey(0)
cv2.destroyAllWindows()


在这个示例中,我们首先读取一个图像,然后定义翻转方式。接着,我们使用 `flip` 函数对图像进行翻转。

**3. 裁剪**

OpenCV 提供了 `getRectSubPix` 和 `warpAffine` 函数来实现图像的裁剪。下面是一个示例:

import cv2#读取图像img = cv2.imread('image.jpg')

# 定义裁剪区域x1, y1, x2, y2 =100,100,300,300# 获取裁剪矩阵M = cv2.getRectSubPix(img, (x2 - x1, y2 - y1), ((x1 + x2) //2, (y1 + y2) //2))

# 裁剪图像cropped_img = M# 显示原图和裁剪后图cv2.imshow('Original', img)
cv2.imshow('Cropped', cropped_img)
cv2.waitKey(0)
cv2.destroyAllWindows()


在这个示例中,我们首先读取一个图像,然后定义裁剪区域。接着,我们使用 `getRectSubPix` 函数获取裁剪矩阵,最后使用 `warpAffine` 函数对图像进行裁剪。

**总结**

本文介绍了 OpenCV 中的图像基本变换功能,包括旋转、翻转和裁剪。通过这些函数,我们可以对图像进行各种操作,从而实现图像处理和计算机视觉中的需求。

其他信息

其他资源

Top