确定旋转矩形的坐标

时间:2010-04-10 11:11:41

标签: javascript algorithm image-processing

我正在创建一个实用程序应用程序,它应该检测并报告图像中透明矩形(alpha = 0)的角的坐标。

到目前为止,我已经设置了一个带有Javascript + Canvas的系统,当我在图像中的透明矩形内部单击时,该系统会显示图像并启动类似Floodfill的操作。它正确地确定了填充操作的边界框,因此可以为我提供正确的坐标。

这是我迄今为止的实现:http://www.scriptorama.nl/image/(适用于最近的Firefox / Safari)。

但是,边界框方法会中断,然后旋转透明矩形(CW或CCW),因为生成的边界框不再正确表示正确的宽度和高度。我试图提出一些方法来检测角落,但是还没有能够想出一个合适的解决方案。

那么,有没有人对我如何处理这个有任何建议,所以我可以正确检测旋转矩形的4个角的坐标?

1 个答案:

答案 0 :(得分:4)

我认为您可以通过对现有解决方案的简单扩展来实现此目的:沿着边界框的4个边缘走,寻找透明像素:

  • 在非旋转的情况下,沿着框的每个边缘的所有像素都是透明的。
  • 在旋转的情况下,必须有一个角接触盒子的每个边缘。这将位于离边缘中间最远的透明像素处(由于锯齿可能会有多个,例如,如果矩形只是非常轻微地旋转)。