1

私はopencvと画像処理でいくつかの作業を行ってきました。時々、次のようにピクセルを手動で変更しようとすると、次のような状況に遭遇しました。

cv::Mat newImg = cv::Mat::zeros(img.size(), img.type());

    for( int y = 0; y < img.rows; y++ )
    {
        for( int x = 0; x < img.cols; x++ )
        {
            cv::Vec3b intensity = img.at<cv::Vec3b>(y, x);
            r = intensity.val[0];
            g = intensity.val[1];
            b = intensity.val[2];

            intensity.val[0] = r - (r * modify - r);
            intensity.val[1] = g - (g * modify - g);
            intensity.val[2] = b - (b * modify - b);

            newImg.at<cv::Vec3b>(y, x) = intensity;
        }
    }

これにより、次のようなブラックボックスを持つ新しい画像が生成されます

ここに画像の説明を入力

forループが写真全体をカバーしていない理由がわかりません。以前はこれを修正できましたが、運が良かっただけで、この問題の理由と場所がわかりません。

つまり、私の質問は次のとおりです。画像からこのブラックボックスを削除するにはどうすればよいですか?

ありがとう

4

1 に答える 1