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);

.
Зря вы связались с EDM. Честно сказать, я не знаю, как объектно-сущностный подход EDM может "разрулить" большие объемы данных. Конечно, в теории это всё очень красяво выглядит: "модель", "отображение". Но в реальности я работал с довольно большими sql server базами, знаете, никакой EDM вам не заменит написанные и оптимизированные лично вами sql-запросы к БД. Слишком много деталей и тонкостей в написании запросов. Лучше вынесите логику формирования данных для программы в хранимые процедуры, с ними и работайте (используя автономный уровень ado). Конечно нельзя возвращать программе 200-300 тыщ записей, вы ведь работаете с реальным сервером БД, практикуйте разумный подход. После того, как пользователь ввел критерий поиска - верните первые сто (или тысячу) записей, которые подходят под обозначенный критерий. Если оператору нужно что-то более конкретное - пусть уточнит критерий поиска. Иначе так и будете «пить чай», а если операторов будет десять или сто, тогда и чай не поможет.