есть ли какая-либо дополнительная информация, которую вы знаете об изображениях, которые можно использовать, чтобы помочь?
Например, изображения начинаются белыми, затем становятся черными, а затем остаются черными? или может ли любой пиксель быть белым или черным, и тот факт, что какой-либо из них белый или черный, ничего не говорит вам о других?
Если любой пиксель может быть белым или черным независимо от других пикселей, то я не вижу, как вы можете добиться большего успеха, чем проверка каждого пикселя в цикле, пока не найдете первый небелый...
Если вы знаете, что если пятый пиксель слева белый, то 0-4 также определенно белые, тогда вы можете вместо этого проверить меньшее количество пикселей, используя какой-то модифицированный поиск двоичного типа (поскольку вы можете пропустить проверку 0-4). в этом случае и просто проверьте, скажем, 5, затем 10, и если 5 белый и 10 черный, вы знаете, что точка находится где-то между 5-10, поэтому вы можете разделить разницу и проверить 7 и т. д. и т. д., пока не найдете точку, в которой они меняются.)
Я думаю, что вы могли бы в конечном итоге с компромиссом между скоростью и точностью здесь. Самый точный способ — разрезать каждый столбец и строку, начиная с концов, проверяя каждый пиксель. Как только вы нашли попадание в столбец, вы нашли край с одной стороны. Это можно сделать параллельно, так как каждая проверка независима. вы могли бы ускорить это, как вы сказали, проверяя только каждый n-й пиксель, но это, вероятно, иногда происходит, особенно с таким большим набором данных. это может быть или не быть приемлемым. вы можете улучшить это, проверив область, в которой вы нашли совпадение, чтобы убедиться, что совпадение является точным. Таким образом, если вы проверяете каждый третий пиксель и обнаруживаете попадание в 15-й пиксель, то проверьте 14-й, чтобы увидеть, является ли он попаданием (и 13-й, если 14-й). используя это, вы можете уйти с меньшим количеством проверок.
person
Sam Holder
schedule
26.03.2012
imagemagick
с SSD или RAM-накопителя? - person halfer   schedule 26.03.2012;)
- person halfer   schedule 26.03.2012