を対応する機能を使用することができます。ただし、スマートループを作成する方法について考える必要があります。すべてのピクセルをループすることができますが、スマートなアプローチを使用することもできます。たとえば、左端のポイントはおそらく左のどこかにあります。したがって、左から右に向かうスキャンラインを使用する場合は、トップ - >ボトムをスキャンするよりも、このピクセルを見つける可能性が高くなります。これは、画像から値を取得するのはかなり簡単だと言われています。
binaryImg
とnチャンネルの画像があるとします。グレースケール画像Nの場合は1でなければなりませんが、カラー画像Nの場合、我々はインデックス0 <= y < height
、0 <= x < width
と0 <= k < n
を持っているとしましょう3.なければなりません。
((uchar *)(binaryImg->imageData + y*binaryImg->widthStep))[x*binaryImg->nChannels + k]
グレー画像は、単一のチャネルを有しているので、画素が使用白であれば、我々は確認することができ:
((uchar *)(binaryImg->imageData + y*binaryImg->widthStep))[x] == 255
において我々は、画素(x、y)の値は以下の缶この解はO(n)の最悪の時間を与えますが、実際にはすべてのピクセルを調べる必要はありません。
あなたはこれについての解決方法を見つけましたか?もしそうなら、答えを教えてください。 –