0

私はOpenCVを初めて使用し、画像の明るさを変更するために使用しています。私のイメージでは、https: //docs.google.com/file/d/0B9LaMgEERnMxQUNKbndBODJ5TXM/edit、その一部だけに雰囲気の光を反射する大きなスペースがあります。最初は、画像の明るさをすべて変更できました。今、私はこのスペースを削減しようとしています。つまり、画像の特定の場所で、HSV の V を使用しています。そのためのコードは次のとおりです。ここにコードを入力してください。

    Mat newImg;
cvtColor(img, newImg, CV_BGR2HSV);

imwrite("C:/Users/amanda.brito/Desktop/test.jpg", newImg);

vector<Mat> hsv_planes; 
split(newImg, hsv_planes); //geting the color plans of image
int param = -70; // the value that I'm seting for V
    for (int y = 0; y < newImg.rows; y++) {
    for (int x = 0; x < newImg.cols; x++) {

        Vec3b pixel = hsv_planes[2].at<Vec3b>(y, x);
        pixel[0] = 0;
        pixel[1] = 0;
        pixel[2] = param;

        hsv_planes[2].at<Vec3b>(y, x) = pixel;

    }
}

    merge(hsv_planes, newImg);
Mat imagem;
cvtColor(newImg, imagem, CV_HSV2BGR);

imwrite("C:/Users/amanda.brito/Desktop/final.jpg", imagem);

まあ、これで、または何も起こらないか、コンパイラがプログラムを停止します。私はすでにどこでも見ましたが、運がありませんでした。私は何を間違っていますか?

以来、あなたの助けに感謝します。

4

0 に答える 0