Гамма-коррекция с помощью PowC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Гамма-коррекция с помощью Pow

Сообщение Anonymous »

Я бы использовал гамма-коррекцию изображения.
Итак, мне нужно увеличить интенсивность каждого пикселя исходного изображения с помощью G = 0,6.
У меня проблема, потому что конечное изображение совершенно неправильное.
Может быть, у меня проблема с кастингом, когда я беру пиксель из исходного изображения.
Вот мой код:

Код: Выделить всё

#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;

int main() {

Mat src = imread("spine1.jpeg");

Mat dst = Mat(src.rows, src.cols, CV_8UC1);
cvtColor(src, src, CV_8UC1);
dst = Scalar(0);

for (int x = 0; x < src.rows; x++) {
for (int y = 0; y < src.cols; y++) {
int pixelValue = (int)src.at(x, y);

dst.at(x, y) = pow(pixelValue, 0.6);

}
}

namedWindow("Input", CV_WINDOW_AUTOSIZE);
namedWindow("Output", CV_WINDOW_AUTOSIZE);

imshow("Input", src);
imshow("Output", dst);

waitKey(0);
return 0;
}
Изменить: изменить cvtColor(src, src, CV_8UC1); в cvtColor(src, src, COLOR_BGR2GRAY);

Подробнее здесь: https://stackoverflow.com/questions/405 ... n-with-pow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»