opencv获取一张图片的长和宽Python代码
时间: 2024-02-07 09:03:16 浏览: 131
以下是使用OpenCV库获取一张图片的长和宽的Python代码示例:
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 获取图片长和宽
height, width, _ = img.shape
# 输出结果
print("Image height:", height)
print("Image width:", width)
```
其中,`imread`函数用于读取图片,`shape`属性返回三个值,分别是`height`,`width`和通道数,因此使用`_`占位符表示通道数。输出结果即可得到图片的长和宽。
相关问题
opencv获取一张图片的长和宽,并存储在两个变量之中Python代码
你可以使用OpenCV库的`cv2.imread()`函数读取图片,然后使用`shape`属性来获取图片的长和宽,并存储在两个变量中。以下是Python代码示例:
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 获取图片的长和宽
height, width, _ = img.shape
# 打印图片的长和宽
print("Image height:", height)
print("Image width:", width)
```
在上面的代码中,`shape`属性返回一个三元组 `(height, width, channels)`,其中`height`和`width`分别表示图片的高度和宽度,`channels`表示图片的通道数(例如,RGB图片的通道数为3)。由于我们只需要图片的长和宽,因此可以使用一个下划线 `_` 忽略掉通道数。
求图像外轮廓的最小外接矩形的长和宽opencv python代码
在OpenCV中,如果你需要求解图像中某个轮廓的最小外接矩形的长和宽,可以按照下面的步骤操作:
```python
import cv2
import numpy as np
# 假设你已经有一张图片并使用Canny算子或者其他的边缘检测方法获取到轮廓
image = ... # 你的图像数据
edges = ... # 边缘检测后的图像,例如从Canny得到
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
# 对于每一个轮廓
rect = cv2.minAreaRect(contour) # 计算最小外接矩形
box = cv2.boxPoints(rect) # 转换为边界点列表
# 将边界点转换为整数坐标,因为`minAreaRect`返回的是浮点型
box = np.int0(box)
# 取矩形的宽度和高度
width, height = rect[1]
# 打印或者在图像上标记矩形
print(f"Width: {width}, Height: {height}")
cv2.drawContours(image, [box], 0, (0, 255, 0), 2) # 绘制矩形
# 显示原始图像
cv2.imshow("Minimum Bounding Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码会遍历图像的所有轮廓,计算每个轮廓的最小外接矩形,并打印出其宽度和高度。注意,`minAreaRect`返回的是一个包含中心点(x, y),宽(w), 高(h)以及旋转角度的元组。
阅读全文