我是 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);
好吧,无论发生这种情况还是什么都没有发生,或者编译器会停止程序。我已经到处看了,但没有运气。我究竟做错了什么?
从现在开始,感谢您的帮助。