如何找到未失真的鱼眼图像和正常图像之间的差异?

Posted

技术标签:

【中文标题】如何找到未失真的鱼眼图像和正常图像之间的差异?【英文标题】:how to find the differences between an un-distorted fish eye image and normal image? 【发布时间】:2017-05-02 19:28:10 【问题描述】:

我正在尝试测量图像失真然后不失真时图像中丢失的信息量。

所以,我正在 Matlab 中执行以下过程(保持相机的视野不变)。

原始图像(针孔相机类型)--> 执行鱼眼失真(使用分割模型)--> 对扭曲的图像进行非扭曲(使用逆分割模型)以获取未扭曲的图像。

执行上述过程后,我尝试使用imsubtract(Original_Image, Undistorted_image) 获取两个图像之间的差异。这让我在图像之间的像素上有一个小的差异,这是不清晰的。

我的问题是,

a) 是否有更好的程序来查找未失真的鱼眼图像和原始图像之间丢失的信息量?

b) 我可以在上述场景中使用另一种误差度量来衡量图像信息丢失吗?

谢谢!

【问题讨论】:

我建议看看imshowpair 使用imabsdiff 而不是imsubtract 【参考方案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

【讨论】:

以上是关于如何找到未失真的鱼眼图像和正常图像之间的差异?的主要内容,如果未能解决你的问题,请参考以下文章

如何在opencv中对鱼眼图像生成的去扭曲?

如何将未扭曲图像的点投影到扭曲图像?

不失真的鱼眼图像错误

在Matlab中去除图像的鱼眼镜头失真时出错[重复]

用于不失真图像的 TensorFlow 函数

图像检测显著图基于matlab失真提示鱼眼图显著图计算含Matlab源码 1903期