cv2.findContours获得的每个轮廓是几维数组?
时间: 2024-02-10 15:09:17 浏览: 138
根据引用[2]中的描述,cv2.findContours函数返回的每个轮廓是一个二维数组。这意味着每个轮廓由一系列的点组成,每个点都有两个坐标值。因此,每个轮廓可以表示为一个二维数组,其中每个元素都是一个包含两个值的数组。
以下是一个示例代码,演示了如何使用cv2.findContours函数获取轮廓并打印每个轮廓的维度:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, 0)
# 寻找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 打印每个轮廓的维度
for contour in contours:
print("Contour dimension:", contour.shape)
```
运行以上代码,你将会看到每个轮廓的维度输出为(点的数量, 1, 2),其中点的数量表示轮廓上的点的个数。
相关问题
img.reshape((1, -1))是把img重塑为几维的数组?
`img.reshape((1, -1))` 是把 `img` 重塑为2维数组,其中第一维的长度为1,第二维的长度自动计算得出。具体来说,如果 `img` 原本是一个形状为 `(a, b, c)` 的三维数组,那么重塑后的数组会变成形状为 `(1, a * b * c)` 的二维数组。其中 `-1` 的位置表示该维度的长度由函数自动计算得出,以满足总元素数不变的条件。
python中如何查看一个数组是几维数组
可以使用 NumPy 库中的 ndim 属性来查看一个数组的维度。
例如,假设有一个二维数组 arr,可以使用以下代码来查看其维度:
```python
import numpy as np
arr = np.array([[1, 2], [3, 4]])
print(arr.ndim) # 输出 2
```
同理,如果要查看一个三维数组的维度,可以使用以下代码:
```python
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr.ndim) # 输出 3
```
阅读全文