OpenCV-Python 图像处理基础:读取、显示与保存
需积分: 0 194 浏览量
更新于2024-08-04
收藏 110KB DOCX 举报
"本资源主要介绍了使用OpenCV-Python进行图像基本操作的方法,涵盖了读取、显示、保存图像,以及处理图像边框、颜色通道提取等关键功能。"
OpenCV-Python是一个强大的计算机视觉库,它提供了丰富的功能用于图像处理和分析。在Python中,OpenCV的接口(cv2模块)使得图像操作变得简单易行。以下是关于标题和描述中涉及的一些关键知识点的详细说明:
1. **读取图像**:
- `cv2.imread()` 函数用于从磁盘加载图像。它接受两个参数:文件名和一个可选的显示控制参数。默认情况下,参数设置为`cv.IMREAD_COLOR`,它将忽略图像的透明度并加载为彩色图像。如果设置为`cv.IMREAD_GRAYSCALE`,则图像会被转换为灰度模式。`cv.IMREAD_UNCHANGED`会保留图像的原始格式,包括alpha通道(透明度)。
示例:
```python
img = cv2.imread('image.jpg', cv.IMREAD_COLOR)
```
2. **显示图像**:
- `cv2.imshow()` 函数用于在窗口中显示图像。它需要两个参数:窗口名称和要显示的图像对象。
示例:
```python
cv2.imshow('Image Display', img)
```
3. **保存图像**:
- `cv2.imwrite()` 函数将图像保存到指定的文件路径。它需要两个参数:文件地址和图像对象。
示例:
```python
cv2.imwrite('output.jpg', img)
```
4. **等待键盘事件**:
- `cv2.waitKey()` 函数暂停程序执行,等待用户按键。参数表示等待时间(毫秒),0表示直到有任何按键按下才继续执行。
示例:
```python
cv2.waitKey(0)
```
5. **关闭所有窗口**:
- `cv2.destroyAllWindows()` 函数用于关闭所有由`cv2.imshow()`打开的图像窗口。
示例:
```python
cv2.destroyAllWindows()
```
6. **捕获视频**:
- `cv2.VideoCapture()` 用于捕获视频流,可以是来自摄像头(如`cv2.VideoCapture(0)`)或视频文件(如`cv2.VideoCapture('video.mp4')`)。
7. **颜色通道提取**:
- `cv2.split()` 函数用于从彩色图像中提取各个颜色通道。在OpenCV中,BGR顺序表示图像的色彩空间。
示例:
```python
b, g, r = cv2.split(img)
```
8. **边界填充**:
- `cv2.copyMakeBorder()` 函数添加边界到图像。它可以使用多种方法填充边界,如`BORDER_REPLICATE`(复制边缘像素)、`BORDER_REFLECT`(反射填充)、`BORDER_REFLECT_101`(对称反射)、`BORDER_WRAP`(环绕填充)和`BORDER_CONSTANT`(常量填充)。
示例:
```python
padded_img = cv2.copyMakeBorder(img, top=10, bottom=10, left=10, right=10, borderType=cv2.BORDER_CONSTANT, value=[0, 0, 0])
```
这些基本操作是OpenCV图像处理的基础,通过它们,开发者可以构建更复杂的图像处理算法和应用,例如图像分析、特征检测、物体识别等。
2024-06-26 上传
2024-06-08 上传
2023-08-09 上传
点击了解资源详情
2023-09-06 上传
2021-05-30 上传
2022-09-14 上传
2024-05-21 上传
豆瓣时间
- 粉丝: 28
- 资源: 329
最新资源
- Chrome ESLint扩展:实时运行ESLint于网页脚本
- 基于 Webhook 的 redux 预处理器实现教程
- 探索国际CMS内容管理系统v1.1的新功能与应用
- 在Heroku上快速部署Directus平台的指南
- Folks Who Code官网:打造安全友好的开源环境
- React测试专用:上下文提供者组件实现指南
- RabbitMQ利用eLevelDB后端实现高效消息索引
- JavaScript双向对象引用的极简实现教程
- Bazel 0.18.1版本发布,Windows平台构建工具优化
- electron-notification-desktop:电子应用桌面通知解决方案
- 天津理工操作系统实验报告:进程与存储器管理
- 掌握webpack动态热模块替换的实现技巧
- 恶意软件ep_kaput: Etherpad插件系统破坏者
- Java实现Opus音频解码器jopus库的应用与介绍
- QString库:C语言中的高效动态字符串处理
- 微信小程序图像识别与AI功能实现源码