测量文本边框在图像中呈现的直线度/平滑度

Aly*_*ono 10 python text signal-processing image image-processing

我有两张图片:

在此处输入图片说明

在此处输入图片说明

我想测量文本边框呈现的直线度/平滑度。

第一张图像呈现得非常笔直,因此值得进行质量测量1。另一方面,第二张图像用很多变体曲线(在某种程度上很粗糙)渲染,这就是为什么它的质量测量值小于1. 我将如何使用图像处理或任何 Python 函数或任何用其他语言编写的函数来测量它?

澄清:

有些字体样式最初是用笔画呈现的,但也有一些字体样式可以像草书字体样式一样平滑呈现。我真正想要的是通过给它一个质量度量来区分字符的文本边框表面粗糙度。

我想测量文本边框在图像中呈现的直线度/平滑度。反过来,也可以说我想测量图像中文本边框呈现的粗糙程度。

Fre*_*ode 8

我不知道任何 python 函数,但我会:

1)potrace用于跟踪边缘并将它们转换为贝塞尔曲线。这是一个可视化: 在此处输入图片说明

2)然后让我们放大到P例如的顶部: 在此处输入图片说明 您绘制垂直于曲线的有限长度(假设为 100 像素)的线。您可以在该线上绘制颜色强度(您可以转换为 HSI 或 HSV 并使用这些通道之一,或者只是转换为灰度并直接获取像素值):

在此处输入图片说明 3)然后计算导数的标准偏差。标准差小意味着边缘清晰,标准差大意味着边缘模糊。对于完美的边缘,标准偏差将为零。

4)对于你画一条垂直线的每条边,你现在有一个“平滑度”值。然后,您可以按照您认为合适的方式平均每个边缘、每个字母、每个单词或每个图像的所有平滑度值。此外,绘制的垂直线越多,平滑度值就越准确,但计算量也越大。