图片:
http://img511.imageshack.us/i/measuring1and2space.gif/
我们有一张 .gif 图片。 我们想要测量 3 个黑色岛屿 (2) 相对于白色大“海洋”(1) 的大小。 (3) 是背景 - 我们必须将其视为 (1) 的边界,但我们不想测量它。 (0) 是选择的主要区域(在本例中为 (1)),应将其用作测量的参考区域。因此,在这种情况下,(0) 在 (1) 中,因此它本身就是 100%(参考)。所以这三个岛的大小大约是 (0) 的 xx%。如果 (0) 在 (2) 中,则 (1) 是岛屿的 Xxx%。
好吧...让我们说:
用户在(1)中取(0)。让我们假设他正在使用 JS,并将红点拖放到白色区域中。红点检测其下方区域的颜色。
现在系统需要检测整个白色区域,将其设置为(0)并给它100%。系统必须区分 (2) 和 (3)。因此可以测量(2)和(1)的大小之间的关系。
我无法想象这样的算法如何在 PHP 中实现。那就太棒了,但我认为……如果可能的话……像 OpenCV 这样的东西是一个更好的解决方案。不幸的是我没有这方面的经验。我尝试用 PHP 编写一些 CV,如果有几何形状也是可行的,但这些是有机的。
你能给我一些指导吗?我不知道该去哪里。 :(
您可以使用 http://www.php.net/manual/en/book.image.php 加载图像并获取单个像素颜色。
现在您可以计算区域 2 和区域 1
要计算区域 3 中的所有黑色像素,只需遍历每一行即可。如果一切都是黑色的,那就数数一切。如果不是,则从左到右数所有黑色像素。