私は画像のcv::8UC1
またはcv::8UC3
フォーマットを知っています、それらはそれぞれ保存するための1チャンネル0-255 unsignedcharまたはRGB0-255 unsignedchar画像フォーマットの3チャンネルです。
しかし、のような浮動小数点形式はcv::32F
どうですか?これらの人について2つの質問があります。
1-なぜ32ビットなのですか?ピクセルの強度を0〜4294967296の範囲で保存する必要があるのはなぜですか?(次に、0〜255の範囲の8ビット数に再度変換する必要があると思います!)
2-私が知っているように、整数座標(x、y)を持つ画像を格納するために2次元行列を使用します。しかし、いくつかのコードでは、浮動小数点数を使用してピクセルの位置/座標を見つけているのを見ました。オライリーの本のこの部分のように:
サブピクセルコーナー認識のために特徴を抽出するのではなく、幾何学的測定値を抽出する目的で画像を処理する場合、通常、cv :: goodFeaturesToTrack()によって提供される単純なピクセル値よりも高い解像度が必要になります。別の言い方をすれば、そのようなピクセルは
整数座標が付属していますが、実数値の座標が必要になる場合があります。たとえば、(8.25、117.16)のピクセル位置です。
これはどういう意味ですか?
簡単に説明しようと思いますが、とにかく時間の経過とともに理解が深まると思います。デジタル方式で画像をキャプチャする場合、実際にはテーブルのようなセンサーを使用して、このセルに当たる光の量を測定します。光は物理量です。測定値を0..255に制限したからといって、私たちの目がより繊細な分割を見ることができないという意味ではありません。したがって、多くのアプリケーションは実際に0 ... 2 ^ 8-1(255)ではなく0 ... 2 ^ 16-1の値を提供します。今、私はあなたがあなたの質問に答えるのに十分知っていると思います:
飛行機から撮った農場の画像があると想像してみてください。この写真のどこかに農夫がいることを私は知っています。このピクセルが農民である確率を各ピクセルに保存したいと思います(飛行機から撃たれたときの人は非常に小さいです)。確率の範囲は0から1です。したがって、浮動小数点数が必要です。高精度の計算を行う場合、精度を上げるために32ビット浮動小数点だけでなく64ビット浮動小数点も必要になる場合があります。
前述のように、「ピクセルのテーブル」のみをキャプチャしますが、現実はもっと複雑であると想定しています。確かにそうです。したがって、農家は2つのピクセルの間に「陥る」可能性があります。したがって、別のアプローチを取ることができます。農民が移動しているトラクターを見つけて、その真ん中を移動するようにしてください。これは2つのピクセルの間にかなり入る可能性があります。
読んでください、練習すればあなたはそれのコツをつかむでしょう。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加