本文共 1835 字,大约阅读时间需要 6 分钟。
OpenCV 中的图像转换 在Python中,使用OpenCV进行图像转换是一种常见的需求。以下是一些基本的图像转换方法及其代码示例:
### 转灰度图像 将彩色图像转换为灰度图像,以简化处理。
```python import cv2 import numpy as np# 加载彩色图像
img = cv2.imread('image.jpg')# 将彩色图像转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 显示原始图像和灰度图像
cv2.imshow('Original Image', img) cv2.imshow('Grayscale Image', gray_img)cv2.waitKey(0) # 等待用户按键,关闭窗口
cv2.destroyAllWindows() # 清除所有OpenCV创建的窗口### 旋转图像 通过指定角度旋转图像。
```python import cv2 import numpy as np# 加载图像
img = cv2.imread('image.jpg')# 设置旋转中心(左上角坐标)和旋转角度
center = (img.shape[1] // 2, img.shape[0] // 2) # 图像中心点 angle = 45 scale = 1.0# 计算旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)# 旋转图像
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0) cv2.destroyAllWindows()### 调整图像大小 改变图像的尺寸以适应不同的应用场景。
```python import cv2 import numpy as np# 加载图像
img = cv2.imread('image.jpg')# 调整图像大小为(宽, 高)
new_size = (500, 300) resized_img = cv2.resize(img, new_size, interpolation=cv2.INTER_AREA)cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0) cv2.destroyAllWindows()### 测试用例 假设我们有一个800x600像素的图像,我们想要将它旋转45度,然后调整其大小为500x300。
```python
import cv2 import numpy as np# 加载图像
img = cv2.imread('input_image.jpg')# 设置旋转中心、角度和缩放比例
center = (img.shape[1] // 2, img.shape[0] // 2) angle = 45 scale = 1.0# 计算旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)# 旋转图像
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))# 调整图像大小
new_size = (500, 300) resized_img = cv2.resize(rotated_img, new_size, interpolation=cv2.INTER_AREA)# 显示结果图像
cv2.imshow('Rotated and Resized Image', resized_img) cv2.waitKey(0) cv2.destroyAllWindows()}### 人工智能大模型应用示例 假设我们正在开发一个图像识别应用程序,需要预处理输入的图像以适应机器学习的输入格式。可以使用上述代码将彩色图像转换为灰度图像,然后调整其大小,以便于模型的训练。
具体场景:在图像识别模型中,通常需要将输入图像调整为固定尺寸(如224x224),因为深度学习模型的输入通常是固定的。
转载地址:http://jlsfk.baihongyu.com/