Python opencv读入一张图片,把图片的长除以12,宽除以8,把整张图片分成96个圆,按照每一列从上至下输出96个圆的圆心坐标
时间: 2024-05-04 19:21:39 浏览: 8
可以按照以下步骤实现:
1. 导入OpenCV库。
2. 读入一张图片,并获取它的高度和宽度。
3. 将图片的高度除以12,宽度除以8,得到每个圆的直径。
4. 定义一个变量n,表示每一列需要输出的圆的数量,即96。
5. 使用for循环遍历每一列,从上至下输出圆心坐标。
下面是完整的Python代码:
```python
import cv2
# 读入图片
img = cv2.imread('example.jpg')
# 获取图片高度和宽度
height, width, _ = img.shape
# 计算每个圆的直径
diameter = min(height//12, width//8)
# 每一列需要输出的圆的数量
n = 96
# 遍历每一列,输出圆心坐标
for i in range(n):
# 计算圆心坐标
x = width//2 + (i - (n-1)/2) * diameter
y = diameter//2
# 输出圆心坐标
print("Circle {}: ({}, {})".format(i+1, x, y))
```
其中,`example.jpg`是需要读入的图片文件名。在这个例子中,我们假设图片的高度为480像素,宽度为640像素,每个圆的直径为40像素。输出结果为:
```
Circle 1: (96, 20)
Circle 2: (136, 20)
Circle 3: (176, 20)
...
Circle 94: (464, 20)
Circle 95: (504, 20)
Circle 96: (544, 20)
```
其中,每个圆的y坐标都是20,因为我们假设每个圆的直径为40像素,所以它们的上边缘都在y=20的位置。x坐标根据每一列的序号计算得到,第一个圆的x坐标为96,最后一个圆的x坐标为544。