你知道有关可用于帮助的图像的任何额外信息吗?
像图像开始白色然后变黑然后保持黑色?或者任何像素可以是白色还是黑色,而任何一个像素都是白色或黑色这一事实并不会告诉你关于其他像素的事情?
如果任何像素可以是白色或黑色而不管其他像素,那么我看不出你怎么做比检查循环中的每个像素要好得多,直到找到第一个非白色像素…
如果您知道如果左边的第五个像素是白色,那么0-4肯定是白色的,那么您可以通过使用某种修改的二进制类型搜索来检查更少的像素(因为您可以跳过检查0-4在这种情况下,只检查说5,然后10,如果5是白色,10是黑色你知道点在5-10之间,所以你可以分裂差异,检查7等等,直到你找到点他们改变了.)
我想你最终可能会在速度和准确度之间进行权衡.最准确的方法是从四肢开始切割每个列和行,检查每个像素.一旦您在列中找到了匹配,就会在一侧找到边缘.这可以并行完成,因为每个检查都是独立的.正如你所说,你可以加快速度,只检查每个第n个像素,但偶尔也会出现这种情况,特别是对于这么大的数据集.这可能是也可能是不可接受的.您可以通过检查找到匹配的区域来检查匹配是否准确来改善这一点.因此,如果您检查每个第3个像素并且您在像素15处找到命中,则检查14以查看它是否是命中(如果是14,则检查13).使用它你可以减少支票.