opencv-python怎么使用
时间: 2025-05-10 20:34:59 浏览: 19
### OpenCV-Python 使用教程
#### 安装 OpenCV-Python
要使用 `opencv-python` 库,首先需要确保已正确安装该库。可以通过以下命令来完成安装:
```bash
pip install opencv-python
```
如果需要额外的功能支持(例如某些高级模块),还可以安装扩展包:
```bash
pip install opencv-contrib-python
```
对于无头环境(不带 GUI 显示的支持),可以选择安装 `opencv-python-headless`[^2]。
---
#### 基础概念与功能概述
OpenCV-Python 是一个用于图像处理和计算机视觉的强大工具集,能够实现多种操作,包括但不限于读取/写入图像文件、视频流捕获、边缘检测以及特征提取等[^4]。
以下是几个常见的功能分类及其对应的函数说明:
- **图像加载与保存**
- 加载图像:`cv2.imread()`
- 展示图像:`cv2.imshow()` 和 `cv2.waitKey()`
- 存储图像:`cv2.imwrite()`
- **颜色空间转换**
- 颜色通道变换:`cv2.cvtColor(src, code)`
- 示例代码:将 BGR 图像转为灰度图。
```python
import cv2
img = cv2.imread('image.jpg') # 默认按BGR顺序读取
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
- **几何变换**
- 缩放:`cv2.resize(image, dsize[, fx, fy])`
- 旋转:通过获取旋转矩阵并应用仿射变换实现。
```python
(h, w) = img.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle=45, scale=1.0)
rotated = cv2.warpAffine(img, M, (w, h))
```
- **形态学操作**
- 膨胀:`cv2.dilate(image, kernel)`
- 腐蚀:`cv2.erode(image, kernel)`
```python
kernel = np.ones((5, 5), np.uint8)
dilation = cv2.dilate(gray_img, kernel, iterations=1)
erosion = cv2.erode(dilation, kernel, iterations=1)
```
---
#### 示例代码解析
下面提供一段完整的代码示例,演示如何读取一张图片并对其中的对象进行轮廓检测。
```python
import numpy as np
import cv2
# 步骤一:加载原始图像
img = cv2.imread('shapes.png')
# 将彩色图像转化为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对灰度图像执行二值化处理
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)
# 查找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓到原图上
for contour in contours:
area = cv2.contourArea(contour)
if area > 100: # 过滤掉面积较小的噪声区域
cv2.drawContours(img, [contour], -1, (0, 255, 0), 2)
# 显示最终结果
cv2.imshow('Detected Shapes', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码展示了从图像预处理到目标识别的过程,适用于初学者快速入门[^1]。
---
#### 关于示例图片的位置
在学习过程中可能会遇到官方文档中的例子需要用到特定测试图片的情况。这些图片通常位于安装目录下的子路径中,例如:
```
C:\Users\<用户名>\Downloads\opencv-<版本号>\samples\data\
```
或者直接访问 GitHub 上的资源仓库下载所需素材[^3]。
---
阅读全文
相关推荐














