问题
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
来源:https://stackoverflow.com/questions/43745777/how-to-find-the-differences-between-an-un-distorted-fish-eye-image-and-normal-im