私はopencvを学ぼうとしていますが、非常に混乱しています。誰かがimagedepthとnoの違いを知っていますか. 画像内のチャネルの数。画像深度が 8 であり、いいえであるとします。R,G,B のチャンネルは 3 です。では、これは何を意味するのでしょうか。3D 構造を視覚化するのに苦労しています。
5 に答える
深さ(またはより良い色深度)は、色の値を表すために使用されるビット数です。私はOpenCVにはあまり興味がありませんが、色深度8は通常、チャネルあたり8ビットを意味します(したがって、256色の値があります-またはそれ以上:グレーの色合い(コメントを参照)-チャネルあたり-0から255まで)および3チャネルつまり、1つのピクセル値は3 * 8=24ビットで構成されます。
ただし、これは命名法にも依存します。通常、あなたは言うでしょう
「色深度はチャネルあたり8ビットです」
しかし、あなたはまた言うことができます
「画像の色深度は32ビットです」
次に、RGBAチャネルあたり8ビットを意味します。
「画像の色深度は24ビットです」
R、G、Bチャネルあたり平均8ビット。
結論:ドキュメント(または文言)はここで非常に具体的でなければなりません;-)
OpenCV のドキュメントによると、OpenCV では深度は個々のチャネルのビット深度として定義されています。したがって、8 ビット深度で 3 チャネルの場合、イメージ ピクセルあたり 24 ビットであることを意味します。
このようにしてください。
ピクセルが 1 つしかない画像があります。画像のサイズは 1x1 ピクセルです。
- これがグレースケール画像の場合、画像を表すために必要なのは SINGLE チャンネルだけです。どのように?灰色の画像 (8 ビット画像を想定) は、2 の 8 乗である 8 ビットを持ち、256 の異なる SHADES があるためです。黒から白へ。グレースケール
- グレースケールは一般的に白黒画像です。
- 同じ単一ピクセル画像が色で構成されている場合、赤、緑、青または RGB という 3 つのチャネルが必要です。これらのチャンネルの色合いを混ぜると、さまざまな色が得られます。
- 同様に、(255,255,255) は RGB で純粋な白、(0,0,0) は純粋な黒です。
- したがって、各チャネルには 0 ~ 255 の 8 ビットの色合いがあります。
- 結果として得られるカラー イメージの深度は 8 ビットで、チャネル数は 3 です。
- チャネルごとに 8 ビットを超えることができます。これにより、色の範囲 (色合い) が増加します。
- 1x1 ピクセル イメージの場合、ピクセル カラー値はチャネルごとに 0 ~ 255 の範囲になります。あれは
[0 to 255 in R][0 to 255 in G][0 to 255 in B]
画像の奥行きとは、各チャンネルが持つことができる価値の範囲を意味します。たとえば8ビット(符号なし文字)のチャネル深度がある場合、1つのチャネルは0〜255の値を持つことができます。RGBは3つのチャネルを意味し、1つはR ed値、1つはG reen値、もう1つはBlueです。価値。
画像の深さは、画像 ( integer
、char
、float
) を格納するために使用される実際のデータ型の長さです。あなたの場合、深さは8ビットのようchar
です。unsigned char
Number of channels は、特定のピクセルの色を表す数値です (例: RGB - 3 チャネル)。