PHP – 检测图像周围空白区域的快速方法?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP – 检测图像周围空白区域的快速方法?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一种非常快速方法来检测图像周围的空白区域,特别是我需要第一个白色像素从每一侧开始的坐标(例如左侧,顶部,右侧,底部).

ImageMagick太慢,因此沿着每一侧的每个像素循环使用GD并查看它是否为白色.我必须做大约500,000,000张图像,所以每微秒都有所作为.

顺便说一下,图像是黑色的&只有白色.

如果有一个外部应用程序可以执行此操作,我可以用PHP执行,那就没关系.

解决方法

知道有关可用于帮助的图像的任何额外信息吗?

像图像开始白色然后变黑然后保持黑色?或者任何像素可以是白色还是黑色,而任何一个像素都是白色或黑色这一事实并不会告诉你关于其他像素的事情?

如果任何像素可以是白色或黑色而不管其他像素,那么我看不出你怎么做比检查循环中的每个像素要好得多,直到找到第一个非白色像素…

如果您知道如果左边的第五个像素是白色,那么0-4肯定是白色的,那么您可以通过使用某种修改的二进制类型搜索来检查更少的像素(因为您可以跳过检查0-4在这种情况下,只检查说5,然后10,如果5是白色,10是黑色你知道点在5-10之间,所以你可以分裂差异,检查7等等,直到你找到点他们改变了.)

我想你最终可能会在速度和准确度之间进行权衡.最准确的方法是从四肢开始切割每个列和行,检查每个像素.一旦您在列中找到了匹配,就会在一侧找到边缘.这可以并行完成,因为每个检查都是独立的.正如你所说,你可以加快速度,只检查每个第n个像素,但偶尔也会出现这种情况,特别是对于这么大的数据集.这可能是也可能是不可接受的.您可以通过检查找到匹配的区域来检查匹配是否准确来改善这一点.因此,如果您检查每个第3个像素并且您在像素15处找到命中,则检查14以查看它是否是命中(如果是14,则检查13).使用它你可以减少支票.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP – 检测图像周围空白区域的快速方法?全部内容,希望文章能够帮你解决PHP – 检测图像周围空白区域的快速方法?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。