python - 测量图像中文本边框的直/平滑度

标签 python image image-processing text signal-processing

我有两个图像:

enter image description here

enter image description here

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

第一张图像完美地呈现为直线,因此应采用1进行质量测量。另一方面,第二个图像呈现了许多变化曲线(某种程度上是粗糙的),这就是为什么它应具有比1少的质量度量的原因。如何使用图像处理或任何Python函数或任何其他语言编写的函数来测量它?

澄清:

有些字体样式本来是用笔触绘制的,但也有些字体样式像草书字体样式一样平滑地呈现。我真正要追求的是通过提供质量度量来区分字符的文本边框表面粗糙度。

我想测量图像中文本边框的笔直/平滑程度。
相反,也可以说我想测量图像中文本边框的粗糙程度。

最佳答案

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

1)使用potrace跟踪边缘并将其转换为贝塞尔曲线。这是Vizualization:
enter image description here

2)然后,我们放大到P的顶部,例如:
enter image description here
您在垂直于曲线的方向上绘制有限长度的线(例如100像素)。您可以在那条线上绘制颜色强度(可以转换为HSI或HSV并使用这些 channel 之一,也可以转换为灰度并直接获取像素值):

enter image description here
3)然后计算导数的标准偏差。小标准偏差表示边缘锐利,大标准偏差表示边缘模糊。对于完美的边缘,标准偏差将为零。

4)现在,对于您画出一条垂直线的每个边缘,您现在都有一个“平滑度”值。然后,可以根据需要平均每个边缘,每个字母,每个单词或每个图像的所有平滑度值。同样,绘制的垂直线越多,平滑度值越准确,但计算量越大。

关于python - 测量图像中文本边框的直/平滑度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60686144/

相关文章:

python - 更改 Django 设置后 uwsgi 不会重新加载

python - 不使用 Biopython 将 header 与 fasta 文件中的序列分开

java - RGBImageFilter 不影响我的图像

css - 图片漂浮的烦恼

python - SymPy 无法计算*变形*向量的点积

angular - 如何显示 ts 表中的图像

python - 将二进制图像划分为 4x4 Python 并计算像素

c# - 如何在 C# 中使用 RANSAC 过滤 OpenSURF 无效匹配

.net - 绘制文本时使用 GDI+ 设置字距

python - 在 geopandas 中使用多多边形 shapefile 剪切 shapefile