% 约束最小平方滤波
clc,clear,close all  % 清理命令区、清理工作区、关闭显示图形
warning off       % 消除警告
feature jit off      % 加速代码运行
tic
[filename ,pathname]=...uigetfile({'*.bmp';'*.tif';'*.jpg';},'选择图片'); %选择图片路径
str=[pathname filename]; % 合成路径+文件名
im = imread(str);        % 读图
noise_mean = 0;  % 均值
noise_var =1e-3; % 方差
im = imnoise(im,'gaussian',noise_mean, noise_var); % 原图像 + 白噪声% 约束最小平方滤波
Xd = im2double(im);
HSIZE = [3 3];   % 模板窗口大小
SIGMA = 0.5;     % 标准差
H = fspecial('gaussian',HSIZE,SIGMA);
noise_power = noise_var * prod(size(Xd));   % prod(size(Xd))=65536;噪声的功率
[Zd, LAGRA] = deconvreg_filter(im,H,noise_power);  % 应用约束最小平方滤波figure('color',[1,1,1]),
subplot(121),imshow(im);title('原始图像')
colormap(jet)  % 颜色
shading interp % 消隐
subplot(122),imshow(Zd,[]);title('约束最小平方滤波图像')
colormap(jet)  % 颜色
shading interp % 消隐
toc
function [J, LAGRA] = deconvreg_filter(I,PSF,NP)
% 约束最小平方滤波器
%函数输入:
%        I:   输入的二维图像矩阵
%        PSF: 退化函数的空域模板
%        NP:  表示噪声的功率
%函数输出:
%        J: 约束最小平方滤波图像
%        LAGRA: 可以为一个数值,表示指定约束最小平方的最佳复原参数y,
%               也可以为[min,max]形式,表示参数y的搜索范围
%               若此参数省略,则表示搜索范围为[1e-9,1e9] 。% 约束最小平方滤波
if ~isa(I,'double')I = double(I)/255;
end
LR = [1e-9 1e9];    % 复原参数搜索范围
% 求解输入图像维数
sizeI = size(I);
% PSF 矩阵
sizePSF = size(PSF);
% 输入图像的维数求解
numNSdim = find(sizePSF~=1);
NSD = length(numNSdim);
% 转化PSF函数到期望的维数 光传递函数OTF
otf = psf2otf(PSF,sizeI);
% regop:通过计算拉普拉斯算子计算图像的平滑性
% 具体见表达式(10.23)if NSD == 1,regop = [1 -2 1];else % 二维矩阵% 3x3 Laplacian matrixesregop = repmat(zeros(3),[1 1 3*ones(1,NSD-2)]);% center matrix of Laplacianidx = [{':'}, {':'}, repmat({2},[1 NSD-2])];regop(idx{:}) = [0 1 0;1 -NSD*2 1;0 1 0];  % 模板算子end
%   regop =
%      0     1     0
%      1    -4     1
%      0     1     0% 改变REGOP折返回原始维数idx1 = repmat({1},[1 length(sizePSF)]);idx1(numNSdim) = repmat({':'},[1 NSD]);REGOP(idx1{:}) = regop;
% 转化PSF函数到期望的维数 光传递函数OTF
REGOP = psf2otf(REGOP,sizeI);fftnI = fftn(I);
R2 = abs(REGOP).^2;
H2 = abs(otf).^2;% 计算LAGRA值
if (numel(LR)==1) || isequal(diff(LR),0),% LAGRA is givenLAGRA = LR(1);
else % 采用fminbnd在[1e-9,1e9]优化,加速计算R4G2 = (R2.*abs(fftnI)).^2;H4 = H2.^2;R4 = R2.^2;H2R22 = 2*H2.*R2;ScaledNP = NP*prod(sizeI);LAGRA = fminbnd(@ResOffset,LR(1),LR(2),[],R4G2,H4,R4,H2R22,ScaledNP);
end;% 重构图像
Denom = H2 + LAGRA*R2;
Nomin = conj(otf).*fftnI;% 保证Denom中的最小值取为sqrt(eps)
Denom = max(Denom, sqrt(eps));
J = real(ifftn(Nomin./Denom));   % 取实部
endfunction f = ResOffset(LAGRA,R4G2,H4,R4,H2R22,ScaledNP)
% 计算反向卷积残差-留数计算
% Parseval's theorem
Residuals = R4G2./(H4 + LAGRA*H2R22 + LAGRA^2*R4 + sqrt(eps));
f = abs(LAGRA^2*sum(Residuals(:)) - ScaledNP);
end

MATLAB---约束最小平方滤波相关推荐

  1. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...

    由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...

  2. 自适应滤波-最小均方误差滤波

    1.最小均方误差滤波原理 低通滤波不能像中值滤波那样很好的滤除冲激噪声.因为低通滤波的最终结果混合了图像信号无关的噪声和信号本身.相反,中值滤波能够在保护图像边缘不受损失的情况下,滤除与图像信号无关的 ...

  3. PCA--主成分分析(Principal components analysis)-最小平方误差解释

    最小平方误差理论            假设有这样的二维样本点(红色点),回顾我们前面探讨的是求一条直线,使得样本点投影到直线上的点的方差最大.本质是求直线,那么度量直线求的好不好,不仅仅只有方差最大 ...

  4. XY的模式识别学习笔记-最小平方误差准则分类 MSE

    最小平方误差准则分类 MSE 最小平方误差准则分类 定义 简单例题及Matlab代码实现 大三数学狗,记录一下学习过程. 最小平方误差准则分类 定义 对线性不可分的样本集,不等式组 a T y i & ...

  5. 基于matlab的语音信号滤波处理

    基于matlab的语音信号滤波处理 摘要:本课程设计的主要目的是在MATLAB环境下,使用窗口设计法设计一个滤波器,并对语音信号进行滤波去噪.开发平台为MATLAB,设计方法为窗口设计法.用麦克风采集 ...

  6. matlab求最小范数解,python中计算最小范数解或伪逆解最精确的方法是什么?

    我的目标是解决:Kc=y 对于伪逆(即最小范数解): ^{pr2}$ 这样模型(希望)是高次多项式模型f(x) = sum_i c_i x^i.我特别感兴趣的是我们有更多的多项式特征比数据(少方程太多 ...

  7. 最小平方误差判别 MSE

    最小平方误差判别准则函数 对于上一节提出的不等式组: 在线性不可分的情况下,不等式组不可能同时满足.一种直观的想法就是,希望求一个a*使被错分的样本尽可能少.这种方法通过求解线性不等式组来最小化错分样 ...

  8. matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别

    利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...

  9. 图像相减的matlab仿真及光栅滤波法,图像相减的MATLAB 仿真及光栅滤波法实验实现...

    图像相减的MATLAB 仿真及光栅滤波法实验实现 毕业设计(论文)中期报告题目图像相减的MATLAB仿真及光栅滤波法实验实现院(系)光电学院专业光信息科学与技术班级090106姓名陈凤学号090106 ...

最新文章

  1. android开发我的新浪微博客户端-登录页面功能篇(4.2)
  2. select子查询多个字段_SQL复杂查询
  3. 【Android 系统开发】 Android 系统启动流程简介
  4. MSDE 1433端口
  5. 大疆口袋云台存储卡_让拍摄更加安心,大疆无人机与口袋相机的存储卡选择:东芝M303E...
  6. 2021浙江英语高考成绩查询,2021浙江高考英语试卷难度如何
  7. 安卓开发入门到精通!免费Android高级工程师学习资源,系列篇
  8. 电脑有回声_电脑连接麦克风有回音怎么办?麦克风回声的解决方法
  9. 招博后,比利时鲁汶大学 A2H 部计算机视觉动物行为分析方向
  10. 面试官:Spring代理目标bean时为何通过TargetSource类型对目标bean封装?
  11. 【layUI时间控件使用】:按钮显示时间并放到输入框
  12. VMware出现“该虚拟机似乎正在使用中”问题
  13. 转载《五大免费采集器哪个好,火车头,海纳,ET,三人行,狂人采集 》
  14. 机器学习(7)——支持向量机(二):线性可分支持向量机到非线性支持向量机
  15. 单片机线选法存储印象(地址范围)方法+例题
  16. MacOS 的任务管理器
  17. 机器学习之K-Means
  18. 【在线工具】常用在线工具集合
  19. 从Excel中解救你!如何用Python实现报表自动化
  20. js中唤醒弹框的3种方式

热门文章

  1. python中三目运算符、推导式 ## 17
  2. Web安全—文件包含漏洞(RFILFI)
  3. 小技巧——如何为foxmail中的文字编辑超链接
  4. 重磅 | 华为发布绝杀计算战略!投15亿美元打造开放生态,全球最快AI训练集群Atlas 900,绝了!...
  5. 思摩尔推出全球首屈一指的超薄陶瓷芯烟弹解决方案FEELM Air
  6. win7 下anaconda 安装及安装包
  7. 微信android字体颜色,如何用微信打出颜色各异的字
  8. JWeb新闻的增删改查
  9. 机器学习-聚类PPT
  10. 学习python的第六天