如何处理图像中的浮点坐标值

gpu*_*guy 5 matlab opencv image-processing

我正在图像上绘制一些几何图形。问题是坐标以浮点数形式出现,所以我无法绘制它们。作为一种解决方法,我正在使用 floor(); 将其截断为最接近的整数。这在某些情况下效果很好,只是它稍微改变了我的形象。

  x=9.7 

  x'=floor(x)= 9  //the plot is now at 9 and not at 9.7 as desired, (this is 'shift')   
Run Code Online (Sandbox Code Playgroud)

但是,如果我的要求是以等距绘制多个形状,我会面临问题,因为每个形状的移位(因为 floor();)并不统一。
它就像数字通信中的量化噪声。

有什么办法可以解决这个问题吗?

mev*_*ron 3

这个问题实际上在计算机图形学中很常见。光栅化是您当前正在努力解决的问题领域。您可能会发现Bresenham 的直线算法很好地介绍了该主题。是一个很好的交互式网站,有一些不同的光栅化算法。

希望有帮助!