python opencv 获取轮廓朝向
时间: 2023-06-30 08:26:26 浏览: 284
要获取轮廓的朝向,可以使用OpenCV中的`cv2.minAreaRect()`函数来计算轮廓的最小外接矩形,进而得到矩形的中心点坐标和长宽以及旋转角度信息。具体步骤如下:
1. 读取图像并转换为灰度图像。
```python
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
2. 进行二值化处理。
```python
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
```
3. 查找轮廓。
```python
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
4. 遍历轮廓,获取最小外接矩形信息。
```python
for cnt in contours:
rect = cv2.minAreaRect(cnt)
center, size, angle = rect
# center: 矩形中心点坐标 (x, y)
# size: 矩形长宽 (w, h)
# angle: 矩形旋转角度
```
通过上述步骤,可以获取每个轮廓的最小外接矩形信息,从而得到轮廓的朝向信息。
相关问题
python opencv 获取轮廓朝向并可视化
获取轮廓朝向后,可以通过可视化的方式将结果展示出来。具体步骤如下:
1. 读取图像并转换为灰度图像。
```python
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
2. 进行二值化处理。
```python
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
```
3. 查找轮廓。
```python
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
4. 遍历轮廓,获取最小外接矩形信息并可视化。
```python
for cnt in contours:
rect = cv2.minAreaRect(cnt)
center, size, angle = rect
# center: 矩形中心点坐标 (x, y)
# size: 矩形长宽 (w, h)
# angle: 矩形旋转角度
# 可视化
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
```
通过上述步骤,可以获取每个轮廓的最小外接矩形信息并可视化展示出来。其中,`cv2.boxPoints()`函数用于将矩形转换为四个顶点坐标,`np.int0()`函数用于将坐标值转换为整数类型,`cv2.drawContours()`函数用于绘制矩形轮廓,并通过`cv2.imshow()`函数展示结果。
阅读全文