0

C++ の初心者で、OpenCV ライブラリを使用してきました。画像ビューアの調光機能を作成しようとしています。の本体ですvoid dim(int val)

私はすべてのピクセルをループして、Vec3b 内のピクセルの RGB 値への参照を取得し、val / 255(whereから計算された何らかの変更係数でそれらを減らします0 <= val <= 255。しかし、何らかの理由で、pix[0]etc はすべて 0 に設定されています。画像の任意の値valが黒になります。

ここで浮動小数点で少しばかげたことをしている、または OpenCV のいくつかの側面を誤解している可能性があります。しかし、それが何であるかはわかりません。

for(int x = 0; x < rows; x++) {
    for(int y = 0; y < cols; y++) {
        Vec3b &pix = dst.at<Vec3b>(x,y);

        float change = val / 255.0f;
        pix[0] = (uchar)(pix[0] * change);
        pix[1] = (uchar)(pix[1] * change);
        pix[2] = (uchar)(pix[2] * change);
    }
}

前もって感謝します!

4

2 に答える 2