Aar*_*kan 11 svg image vector-graphics
我想比较两个矢量图像(比如SVG),看看它们有多接近.基本上,我想测试跟踪算法的正确性,该算法将光栅图像转换为矢量格式.
我想测试这个算法的方式是:
- 拍一些矢量图像.
- 将矢量图像光栅化为png.
- 将上述png转换为跟踪算法.
- 将跟踪程序(SVG)的输出与原始程序进行比较.
虽然我知道像RMSE(在imagemagick中)有一些光栅图像的矩阵,但如果有一些标准的矢量格式矩阵,我不熟悉.我可以想到一些简单的例如弧数,线,曲线等.但是这些不能检测几何和颜色的偏差.有人可以建议一个良好的标准指标或其他方法来解决这个问题.
我不知道用于此目的的标准指标,但确实有一个指针,希望对您有所帮助。
Batik项目使用一组工具来测试其SVG文档的呈现与一组参考图像之间的差异是否太大。我的理解是,它实质上是对SVG进行光栅化并对两个图像进行基于像素的比较,以查看它们之间的差异。它应该足够聪明,可以忽略不可避免的差异,例如,由于抗锯齿的细微差异而产生的差异。
您可以在http://jpfop.sourceforge.net/jaxml-batik/html-docs/test.html上了解有关它的更多信息(尤其是SVGRenderingAccuracyTest部分)。
当然,这意味着您将要进行栅格比较而不是矢量比较。在您的情况下,矢量比较将非常困难,因为完全不同的曲线可能会产生极其相似的渲染-我认为这很好。此外,输入可能具有隐藏在另一个形状之后的形状,从而使输出不可能猜测出它是什么。因此,即使输出可能产生像素完美的等效渲染,输出最终仍将显示为完全错误。
但是,如果您确实希望执行向量比较(也许您的数据受到某种限制,以使其更可行),则最简单的方法可能是先将两个SVG标准化(将所有形状转换为路径,消除所有元数据,应用所有属性的继承和标准化它们的值,标准化路径数据以始终使用相同的形式,等等),并将其用于两个目的:首先,查看标准化树结构中的差异。那应该已经为您提供了一些有用的信息。其次,如果您觉得自己很勇敢,请测量各个曲线之间的差异表面。不过,我会考虑开始使用后者,因为这可能会给您带来很多假阴性。
| 归档时间: |
|
| 查看次数: |
4939 次 |
| 最近记录: |