遍历二值图获取每一列或者每一行的第一个像素值为255的点来拟合直线
时间: 2024-03-13 07:46:54 浏览: 40
JQuery获取table一列值
可以用OpenCV中的函数来实现。以下是获取每一列第一个像素值为255的点的代码示例:
```python
import cv2
import numpy as np
# 读取二值图像
img = cv2.imread('binary_image.png', 0)
# 获取图像大小
height, width = img.shape[:2]
# 遍历每一列,找到第一个像素值为255的点
points = []
for i in range(width):
for j in range(height):
if img[j, i] == 255:
points.append((i, j))
break
# 拟合直线
if len(points) > 0:
points = np.array(points)
[vx, vy, x, y] = cv2.fitLine(points, cv2.DIST_L2, 0, 0.01, 0.01)
slope = vy / vx
intercept = y - slope * x
print("直线方程为:y = {}x + {}".format(slope, intercept))
else:
print("未找到符合条件的点")
```
同样的,获取每一行第一个像素值为255的点也可以使用类似的方法。只需要将上述代码中的`for i in range(width):`改成`for j in range(height):`,`img[j, i]`改成`img[i, j]`即可。
阅读全文