博客
关于我
OpenCV 中的图像转换
阅读量:797 次
发布时间:2023-02-23

本文共 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/

你可能感兴趣的文章
Oracle中常用的语句
查看>>
Oracle中序列的操作以及使用前对序列的初始化
查看>>
oracle中新建用户和赋予权限
查看>>
Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
查看>>
Oracle中的rownum 和rowid的用法和区别
查看>>
oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
查看>>
oracle中表和视图的区别,oracle中常用表和视图
查看>>
oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
查看>>
Oracle从11g导出后导入10g
查看>>
oracle从备份归档日志的方法集中回收
查看>>
oracle优化器analyzed,Oracle 学习之 性能优化(十三) 索引
查看>>
Oracle修改字段类型
查看>>
Oracle修改表或者字段的注释
查看>>
oracle典型安装失败,安装oracle 10失败
查看>>
Oracle内存结构详解(四)--Oracle SGA其他组成部分
查看>>
Oracle函数与存储过程和程序包
查看>>
Oracle分析函数之LEAD和LAG
查看>>
Oracle分组取前n条记录
查看>>
Oracle分页sql
查看>>
Oracle创建database link(dblink)和同义词(synonym)
查看>>