как найти отличия между неискаженным изображением "рыбий глаз" и нормальным изображением?

Я пытаюсь измерить количество информации, потерянной в изображении, когда изображение искажается, а затем не искажается.

Итак, я выполняю следующий процесс в Matlab (сохраняя поле зрения камеры постоянным).

Исходное изображение (тип камеры-обскуры) -> выполнить искажение «рыбий глаз» (с использованием модели деления) -> отменить искажение искаженного изображения (используя модель, обратную модели деления), чтобы получить неискаженное изображение.

После выполнения вышеуказанной процедуры я пытаюсь получить разницу между двумя изображениями, используя imsubtract(Original_Image, Undistorted_image). Это дает мне небольшую разницу в пикселях между изображениями, которая нечеткая.

Мои вопросы,

а) Есть ли лучшая процедура для определения количества информации, потерянной между неискаженным изображением "рыбий глаз" и исходным изображением?

б) Есть ли еще одна мера погрешности, которую я могу использовать в приведенном выше сценарии для измерения потери информации об изображении?

Спасибо!


person Varun Vijaykumar    schedule 02.05.2017    source источник
comment
Предлагаю взглянуть на imshowpair.   -  person codeaviator    schedule 03.05.2017
comment
Используйте imabsdiff вместо imsubtract   -  person Tes3awy    schedule 03.05.2017


Ответы (1)


Есть много способов измерения ошибок, которые легко реализовать в MATLAB, например, здесь я применил MSE ( среднеквадратичная ошибка) и SNR (отношение сигнал / шум):

% the original image
A = im2double(imread('cameraman.tif'));
% the distorted-undistorted image (here just image with noise)
B = A + randn(size(A))*0.1;
% difference between images
D = imsubtract(B,A); % same as B - A
% error measures
s = snr(A,D); % snr (in db)
e = mean(D(:).^2); %mse
person user2999345    schedule 03.05.2017