一、HSI彩色图像去噪简介

针对彩色图像中噪声难以去除的问题,根据HSI空间独特的色彩分离特点,对受高噪声污染的彩色图像的噪声去除进行了研究。首先将彩色图像投影到色彩特征空间HSI中,将色彩信息与亮度特征信息进行分离操作,然后对该空间中的色彩分量H和S提出极坐标下距离阈值去噪方法进行处理,在保持色彩不失真的情况下去除噪声。

HSI空间中,色调H与饱和度S均表示颜色信息,H分量通常以角度度量,S通常表示离I轴的远近程度,人类感知的色彩是这两个分量的合成。文献[2]中建立的色度模型保持了图像的色彩特性。文献[3]中基于这种模型,提出色度中值滤波器去除色彩中的噪声,虽然保真色彩,但滤掉的噪声点很少。本文在色度模型的基础上,在保持颜色不失真的情况下,构造了平均最小距离阈值,尽可能滤掉更多的噪声点,提出了极坐标中距离阈值去噪(distance threshold denoising in polar coordinates,DST),对H和S去除噪声,具体处理过程如下:

步骤1分块预处理。将彩色图像进行HSI分解后,对饱和度分量矩阵S和色调分量矩阵H进行相同的分块处理,块大小为r×c。将两个分量矩阵中任意相同位置的块记为块矩阵s、块矩阵h,并寻找块中像素点数值的最小值,分别记为sm in和hm in。

步骤2极坐标系下块中颜色量的定义。设块中任一点(m,n)处表示颜色的量为Cmn,且满足m=1,2,⋯,r;  n=1,2,⋯,c,若smn、hmn分别表示点(m,n)处的饱和度值和色调值,则对于块矩阵s和h,有smn=s(m,n),hmn=h(m,n),那么在极坐标系下可定义:

其中,i为虚数单位。这说明用块矩阵s和h联合定义的块中每一个表示颜色的量都是个复数,点(i,j)处的颜色量Cij也是个复数。

步骤3距离阈值的设置。块中的点(i,j)与其他任一点(m,n)的距离dmnij可由下式计算。

其中,在块矩阵s和h中,sij、hij是点(i,j)处的饱和度值和色调值,即sij=s(i,j),hij=h(i,j);smn、hmn是点(m,n)处的饱和度值和色调值,即smn=s(m,n),hmn=h(m,n)。

当m=1,2,⋯,r;n=1,2,⋯,c时,对于固定点(i,j),所有的dmnij可以构成像素点(i,j)与块中其他任意像素点的距离矩阵Dij∈Rr×c,设Dij中非0的最小值为dij,则块中每一个点对应一个非0的最小距离值。所有最小距离值的平均值可通过下式计算得到。

步骤4噪声的消除。若在块中点(i,j)处有dij>d,则说明同等条件下该像素点与周围其他像素点的差距较大,相似性太小,在此处产生了突变。根据噪声点的突变型,可判断该点是噪声点,需要去除掉。设块中去除噪声后的饱和度和色调块矩阵分别为ends和endh,具体处理过程如下所示。

其中,i=1,2,⋯,r;j=1,2,⋯,c。对ends和endh进行分块逆变换,得到最终的去除噪声后的饱和度矩阵end S和色调矩阵end H。

二、部分源代码

function varargout = myHSI(varargin)
% MYHSI MATLAB code for myHSI.fig
%      MYHSI, by itself, creates a new MYHSI or raises the existing
%      singleton*.
%
%      H = MYHSI returns the handle to a new MYHSI or the handle to
%      the existing singleton*.
%
%      MYHSI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in MYHSI.M with the given input arguments.
%
%      MYHSI('Property','Value',...) creates a new MYHSI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before myHSI_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to myHSI_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help myHSI% Last Modified by GUIDE v2.5 04-Mar-2022 13:01:39% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @myHSI_OpeningFcn, ...'gui_OutputFcn',  @myHSI_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before myHSI is made visible.
function myHSI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to myHSI (see VARARGIN)% Choose default command line output for myHSI
handles.output = hObject;
axes(handles.axes1);
set(gca, 'vis', 'off')
axes(handles.axes2);
set(gca, 'vis', 'off')
axes(handles.axes3);
set(gca, 'vis', 'off')
axes(handles.axes4);
set(gca, 'vis', 'off')
% Update handles structure
guidata(hObject, handles);% UIWAIT makes myHSI wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = myHSI_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- 打开图像.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
filter = { ...
'*.bmp;*.jpg;*.gif;*.emf', '所有图像文件 (*.bmp; *.jpg; *.gif; *emf)'; ...
'*.bmp', '位图文件 (*.bmp)'; ...
'*.jpg', 'JPEG文件 (*.jpg)'; ...
'*.gif', 'GIF文件 (*.gif)'; ...
'*.emf', '图元文件 (*.emf)'; ...
'*.*', '所有文件 (*.*)' ...
};% 选择文件
[filename, pathname] = uigetfile( filter, '打开...');
if isequal(filename,0) | isequal(pathname,0), return, end% 读入图像并显示
[X, map] = imread([pathname filename]);
% colormap(map)
% image(X)
axes(handles.axes1); cla reset;
imshow(X);title('原图');
% 设置坐标系为适合显示图像的方式
% axis image
set(gca, 'vis', 'off')
handles.I=X;
guidata(hObject, handles);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]杨培,高雷阜,訾玲玲.HSI空间上高噪声彩色图像去噪方法研究[J].计算机科学与探索. 2020,14(11)

【图像去噪】基于matlab GUI HSI彩色图像去噪【含Matlab源码 1786期】相关推荐

  1. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  2. 【人脸识别】基于matlab GUI人数统计【含Matlab源码 2121期】

    ⛄一.人数统计简介(附课程作业报告) 1 课题背景 本课题为基于matlab的人数统计系统.近年来,很多行业对人流信息有极大的需求,如汽车公交站,地铁站台,商场出入口等.通过人数统计系统可以方便.可靠 ...

  3. 基于SSM的仓库管理系统(含完整源码+论文)

    后端框架:SSM 数据库:MySQL 开发工具:IDEA/Eclipse 系统介绍:本系统是基于SSM框架进行设计,MySQL作为底层数据库,前端采用bootstrap 模块大致介绍:包括库存管理.出 ...

  4. 【条形码识别】基于matlab GUI二维条形码识别【含Matlab源码 607期】

    ⛄一.二维条形码识别简介 采用数字图像处理技术对二维条码进行识别, 是二维条形码识别中较常用的方法, 它在处理污损的条形码方面有光电识别方法无法比拟的优势.另外图像式识别方法对识别角度的要求没有光电识 ...

  5. 【心电信号】基于matlab GUI心电信号预处理【含Matlab源码 938期】

    ⛄一.心电信号预处理方法简介 理论知识参考文献:心电信号预处理方法研究 ⛄二.部分源代码 function varargout = kaishi(varargin) gui_Singleton = 1 ...

  6. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  7. 【图像去噪】基于matlab GUI butterworth+中值+维纳+小波图像去噪【含Matlab源码 520期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab GUI butterworth+中值+维纳+小波图像去噪[含Matlab源码 520期] 获取代码方式2: ...

  8. 【图像去噪】空域+频域滤波图像去噪【含GUI Matlab源码 914期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab GUI空域+频域滤波图像去噪[含Matlab源码 914期] 获取代码方式2: 通过订阅紫极神光博客付费专栏 ...

  9. 【图像去噪】基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪【含Matlab源码 462期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪[含Matlab源码 462期] 获取代码方式2: 通过订阅紫极神光 ...

  10. 【图像去噪】基于matlab小波变换(硬阙值+软阙值)图像去噪【含Matlab源码 391期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab小波变换(硬阙值+软阙值)图像去噪[含Matlab源码 391期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

最新文章

  1. [deviceone开发]-Star分享的优惠券商户管理端App开源
  2. vue 中watch函数名_vue中避免使用函数来绑定依赖
  3. centos7 LNMP
  4. ubuntu下安装拼音输入法ibus
  5. 功率曲线k值_特性曲线在参数计算中的应用
  6. php memcache 类库,php操作Memcache的一个类库的方法(代码)
  7. 3.redis集群部署3主3从
  8. HDU 2815 扩展baby step giant step 算法
  9. go模拟android浏览器,GO浏览器:界面酷炫操作顺畅Android浏览器
  10. 装修报价不担心被骗 避免家装陷阱报价揭密
  11. win10 1050Ti 笔记本配置 TensorFlow-gpu 过程(多图超详细)
  12. vue print 解决打印每页都有表头
  13. PLC内部等效电路怎么设计?
  14. 金典《歌手》2019即将首播 创作季上演神仙打架
  15. 缺陷管理工具大PK:UniPro、Bugzilla和Teambition哪家强
  16. 论文笔记:PSGAN
  17. 学习java第6天 模仿XP画板(10%)
  18. 题目:在单处理器多到分时系统中,有三道作业依次提交, 其提交时刻及运行时间分别为
  19. 两个正态随机向量不相关就意味着这两个随机向量独立?
  20. 天津轻工职业技术学院计算机专业怎么样,2019年天津轻工职业技术学院有哪些专业?...

热门文章

  1. SQL Server到底需要使用哪些端口
  2. Linux:CPU使用率100%排查方法
  3. SQL转换时间的时分
  4. selenium webdriver - 截图
  5. ASP.NET中使用System.Net.Mail发邮件
  6. .NET(C#)代码性能优化
  7. 给物体赋值 只改变transform.position的某一维,访问另一个脚本的变量以及给物体用脚本动态添加属性
  8. 混沌理论物理学用科学中视角看未来、现实、时间​​​​​​​
  9. 190130每日一句
  10. Atitit 代码的导航 1.1.代码的层次导航 语句 函数方法 类 包 1.2.4.4. 代码可视化 流程图 一个方法内,多个代码行的关系图 语句to方法 2 1.3.4.5. 类图 类结构