最大似然法复原图像-Matlab

简介: 最大似然法复原图像-Matlab

对于模糊图像除了常见的维纳滤波、逆滤波、约束最小二乘方滤波还可以通过最大似然法进行图像复原。(本人这个做的不好)


步骤流程:


1.读入图像


2.从8 位型转为双精度,以便后面的运算


3.创建离散点扩散函数h


4.原图像f与点扩散函数h卷积,得散焦模糊图像


5.按2D最大似然法公式,在空域中,通过卷积做图像复原


操作演示


左侧的图框为原图和,后续的添加噪声图和图像退化图也在这,右侧图框为图像复原图


选择图像按钮:

global img1;
[filename, pathname] = uigetfile({'*.jpg';'*.bmp';'*.gif'},'choose image pathway');
str = [pathname filename];
if (filename~=0)                          
img1=imread(str);          
axes(handles.axes1)
imshow(img1)
else    %empty file
   clear;
end

添加噪声+图像退化

%% 添加噪声
global img1;
global noise_img;
noise_img = imnoise(img1, 'gaussian', 0, 0.01 );
axes(handles.axes1)
imshow(noise_img)
%% 图像退化
global img3;
global noise_img;
PSF = fspecial('motion', 10, 60);
img3= imfilter( noise_img, PSF, 'circular' );
axes(handles.axes1)
imshow(img3)

图像复原

global img3;
f=im2double(img3); % 从8 位型转为双精度,以便后面的运算
R=5;
h=fspecial('disk',R);     % 创建离散点扩散函数h
% h=fspecial('gaussian',5,1);    % 创建离散点扩散函数h
g=imfilter (f, h, 'conv', 'replicate' ); % 原图像f与点扩散函数h卷积,得散焦模糊图像g。加边界处理,所以无黑边
% 按2D最大似然法公式,在空域中,通过卷积做图像复原:
fi=g;
for i=1:200
    a=imfilter (fi, h, 'conv', 'replicate' );       %  公式中分母的卷积。
    b=g./a;                     %  a,g大小应相同,才能作点除。
    c=imfilter (b, h, 'conv', 'replicate' );       %  公式中的相关。    
    fi=fi.*c;                    %  最大似然法公式。点乘时,f,c应大小相同。 
end
axes(handles.axes3)
imshow(fi);


image.png

image.png


image.png

image.png


相关文章
|
7月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
641 0
|
8月前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
378 8
|
7月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
798 0
|
7月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
221 0
|
8月前
|
机器学习/深度学习 编解码 算法
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
280 0
|
7月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
357 8
|
8月前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
260 2
|
8月前
|
机器学习/深度学习 编解码 算法
【图像处理】图像的边缘检测(Matlab代码实现)
【图像处理】图像的边缘检测(Matlab代码实现)
397 1
|
8月前
|
传感器 机器学习/深度学习 编解码
使用显著性检测的可见光和红外图像的两尺度图像融合(Matlab代码实现)
使用显著性检测的可见光和红外图像的两尺度图像融合(Matlab代码实现)
255 3
|
8月前
|
存储 算法 生物认证
基于Zhang-Suen算法的图像细化处理FPGA实现,包含testbench和matlab验证程序
本项目基于Zhang-Suen算法实现图像细化处理,支持FPGA与MATLAB双平台验证。通过对比,FPGA细化效果与MATLAB一致,可有效减少图像数据量,便于后续识别与矢量化处理。算法适用于字符识别、指纹识别等领域,配套完整仿真代码及操作说明。

热门文章

最新文章