-->

how to find the differences between an un-distorte

2019-08-05 21:38发布

问题:

I am trying to measure the amount of information lost in an image when the image is distorted and then undistorted.

So, I am doing to the following process in Matlab (keeping the Field of View of the camera constant).

Original image (Pinhole camera type) --> perform fish eye distortion (using the division model) --> un-distort the the distorted image (using inverse of division model) to get back the un-distorted image.

After the above procedure is performed, I am trying to get the difference between the two images using imsubtract(Original_Image, Undistorted_image). This gives me a small difference in the pixels between the images which is not clear.

My questions are,

a) Is there a better procedure to find the amount of information lost between a undistorted fish eye image and a original image?

b) Is there an another measure of error that I can use in the above scenario to measure the image information loss?

Thanks!

回答1:

There are many error measures which are simple to implement in MATLAB, here for example I applied MSE (mean squared error) and SNR (signal-to-noise ratio):

% 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