如何找到未扭曲的鱼眼图像和正常图像之间的差异? [英] how to find the differences between an un-distorted fish eye image and normal image?
问题描述
我正在尝试测量图像失真然后不失真时图像中丢失的信息量。
I am trying to measure the amount of information lost in an image when the image is distorted and then undistorted.
所以,我在Matlab中进行以下过程(保持摄像机的视野不变)。
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.
执行上述程序后,我试图使用 imsubtract(Original_Image,Undistorted_image)$ c来区分这两个图像$ C>。这给了我不清楚的图像之间的像素的小差异。
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.
我的问题是,
a)是否有更好的程序来查找信息量在未失真的鱼眼图像和原始图像之间丢失?
b)我是否可以在上面使用另一种误差测量测量图像信息丢失的方案?
谢谢!
推荐答案
有很多错误措施在MATLAB中很容易实现,例如我应用 MSE (均方误差)和 SNR (信噪比):
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
这篇关于如何找到未扭曲的鱼眼图像和正常图像之间的差异?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!