[我正在尝试从可使用的预定义形状集中找到合适的数学形状来近似灰度图像的算法(在我的情况下为3个不同大小的圆圈)。
我已经考虑了基于误差扩散的算法,例如Floyd-Steinberg算法,但是我看不到将基于像素的误差扩散转换为数学形状的方法。
有人有任何建议吗?
编辑:这是一个使用正方形而不是圆形的示例另一个示例是在网格上使用大小统一的圆。这是通过将抖动的正方形替换为圆来产生的,但是由于与原始近似图像的偏差,导致结果不佳。这里的圆圈分布在一个网格中,这不是我想要的:
提示:
Floyd-Steinberg的原理是估计原始图像和二进制图像之间的局部误差。当每个像素被错误的值替换时,该错误将被记住并用作评估下一个像素的补偿。
由于变桨距,您的情况更加困难,需要采取一些避免碰撞的策略。误差扩散的一般化方法是使用所需形状以半规则方式填充图像并估算平均灰度等效值。然后,当差异变得足够大时,在下一个空插槽中放置一个形状。
说起来容易做起来难。