重複しない色付きの長方形がたくさんある画像があります。各長方形は固有の色であり、色は前もってわかっています。(奇妙な状況だと思います。) 各四角形のピクセル位置とサイズを見つけようとしていますが、これをできるだけ速くする必要があります。RMagick または同様のライブラリを使用して、すべてのピクセルを反復処理するよりも簡単にできる興味深いトリックはありますか?
私の現在の計画は、次のようなものです。
for each pixel (moving left-to-right, top-to-bottom):
if pixel color's in our list and we haven't seen it yet:
save pixel location as starting location for that color
else if pixel color's in our list and we've already seen it:
save pixel location as ending location for that color
(はい、ピクセルの特定の領域が四角形であることがわかっている場合は、それらを最適化してスキップできます。) ループの最後に、各四角形の最初と最後のピクセルが必要であり、これを使用して四角形を推測できます。寸法。しかし、これは私にはやや醜いようです。
私はもっとうまくやれるだろうか?