LuckyStrike
Посмотри, чему у тебя равно mse. Если 0, то ты сравниваешь одинаковые изображения, т.к. иначе сумма (I(i, j) - K(i, j))^2 не может быть нулевой. Если изображения отличаются хотя бы одним пикселем, то mse будет > 0.
Цитата:
... и сравниваешь с чем?
Цитата:
Цитата:
Я сравнивал изображения размерами 2028x1521 (примеры из статьи: исходное, сжатое1 и сжатое2) и 2048x3072 (сравнил два произвольных изображения одинакового размера между собой). Бесконечности не было.
Добавлено:
Кстати, для верности приведи числитель и знаменатель в выражении
Код: mse *= 1 / ((bmp1.Width * bmp1.Height)*3);
Посмотри, чему у тебя равно mse. Если 0, то ты сравниваешь одинаковые изображения, т.к. иначе сумма (I(i, j) - K(i, j))^2 не может быть нулевой. Если изображения отличаются хотя бы одним пикселем, то mse будет > 0.
Цитата:
картинки я беру обычные из винды которые, из папки мои изображения
... и сравниваешь с чем?
Цитата:
PSNR наиболее часто используется для измерения уровня искажений при сжатии изображений. Проще всего его определить через среднеквадратичную ошибку (СКО или MSE (англ. mean square error)), которое для двух монохромных изображений I и K размера m×n, одно из которых считается зашумленным приближением другогоТ.е. надо взять какую-нибудь bmp-шку, сжать её каким-нибуь jpeg-ом и сравнить исходное изображение со сжатым.
Цитата:
может просто разрешение для них большое, поэтому пснр считает бесконечность??
Я сравнивал изображения размерами 2028x1521 (примеры из статьи: исходное, сжатое1 и сжатое2) и 2048x3072 (сравнил два произвольных изображения одинакового размера между собой). Бесконечности не было.
Добавлено:
Кстати, для верности приведи числитель и знаменатель в выражении
Код: mse *= 1 / ((bmp1.Width * bmp1.Height)*3);