内のfloatデータ型と強度範囲でRGBチャンネルがどのように私は0-255 内OpenCVの - 0-255
- FLOATデータ型
- 強度範囲として、RGBチャンネルの値を達成することができます
Daltonizationを実装するために浮動小数点数学演算を実行するので、私はCV_32FC4を行列型として使用しました。私は、輝度範囲がCV_8UC3のRGBチャンネルの輝度範囲と同じであることを期待していました。ちょうど異なるデータタイプを持っていました。しかし、私がマトリックスを印刷したとき、私はチャンネルの強度が0〜255の範囲内にないことに気づいた。浮動小数点の範囲のためにそれが実現したmatrix type。
Mat mFrame(height, width, CV_32FC4, (unsigned char *)pNV21FrameData); for(int y = 0 ; y < height ; y++){ for(int x = 0 ; x < width ; x++){ Vec4f BGRA = mFrame.at<Vec4f>(y,x); // Algorithm Implementation mFrame.at<Vec4f>(y,x) = BGRA; } } Mat mResult; mFrame.convertTo(mResult, CV_8UC4, 1.0/255.0);
BGRA[0] = BGRA[0] * n;
のようなピクセルを操作して、それをマトリックスに戻す必要があります。
float行列 'mFrame'の範囲は何ですか? – Miki
フロート行列を印刷したとき、私は2.3693558e-38 – Moon
のような値を得ました。あなたの 'pNV21FrameData'はどこから来たのですか?すでにfloatですか?または、他の何か? 0-255の浮動小数点数のデータを持つことができます。そして、1.0/255.0を実行する必要はありません。これは、0〜1の範囲にある場合にのみ必要です。 – api55