[解決済み] CV_8UとCV_32Fの違いと、両者を変換する際の注意点を教えてください。
2022-02-24 11:12:34
質問事項
あるコードが動作不良を起こしているのですが、これは間違ったタイプのデータを操作しているか、データ間の変換がうまくいっていないためだと思われます。
それは、以下のものを混ぜています。
cv::Mat
オブジェクトの型は
CV_8U
(でjpgをグレースケールで読み取るときに作成されるものです。
cv::imread
),
CV_32F
および
CV_32S
.
これらのデータ型の違いと、データ型間の変換の際に注意すべき点は何ですか?
どのように解決するのですか?
CV_8U は,符号なし8ビット/ピクセルです.つまり,1つのピクセルが持つ値は0~255であり,これはほとんどの画像およびビデオフォーマットにおいて通常の範囲となります.
CV_32F は float - ピクセルが 0-1.0 の間の任意の値を持つことができます.これは,ある種のデータに対する計算には便利ですが,保存や表示のためには,各ピクセルに255を掛けて8ビットに変換する必要があります.
CV_32S は,各ピクセルに対する符号付き32ビット整数値です.これもピクセルに対して整数演算を行う場合に有用ですが,保存あるいは表示するためには,やはり8ビットに変換する必要があります.これは,より大きな範囲の値(±20億!)をどのように 0-255 に変換するかを決定する必要があるため,より厄介です.
関連
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] g++とgccの違いは何ですか?
-
[解決済み] C++の識別子でアンダースコアを使用する場合のルールについて教えてください。
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] C++のstructとclassの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】C++の余分な資格エラー
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】std::cin.getline( ) vs. std::cin