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 中的图像基本变换功能,包括旋转、翻转和裁剪。通过这些函数,我们可以对图像进行各种操作,从而实现图像处理和计算机视觉中的需求。