假设我们有如下图像:
[![输入][1]][1]
我想确定边数和每边的长度。
在图像中,我们将三个边缘作为直线,上面的一个是弯曲的边缘。我能够使用 Canny 边缘检测找到三个直边的长度。我们可以有四个顶点坐标,我们可以计算出三个直边/线的长度,但无法求出曲线边的长度。
在图像python中找到边数和每边的长度以及顶点数这是获取图像中边数的一个很好的答案,我们通过上面链接中的代码获得顶点坐标。进一步使用坐标获取边的长度,如果边是直线,我们可以使用下面的代码来获取长度:
for pt in zip(points,np.roll(points,-1,0)):
# print( pt )
x = pt[0][0]
y = pt[1][0]
d = math.sqrt((x[1]-y[1])*(x[1]-y[1]) + (x[0]-y[0])*(x[0]-y[0]))
print('length between point:',x,'and', y,'is', d)
Run Code Online (Sandbox Code Playgroud)
为了简化我的问题:如果图像形状有任何弯曲的边,我想找到图像中的形状有多少条边/边,以及它们各自的长度。
我正在尝试从车牌中获取字符。但很少有错误的预测,比如
我得到的输出为UP74 BD 3465,这是错误的。有许多B预测的例子8以及更多。
import matplotlib.pyplot as plt
import easyocr
from pylab import rcParams
from IPython.display import Image
rcParams['figure.figsize'] = 8, 16
reader = easyocr.Reader(['en'])
output = reader.readtext(path)
for i in range(len(output)):
print(output[i][-2])
Run Code Online (Sandbox Code Playgroud)