MATLAB图像滤波去噪分析及其应用
2017-03-28 by:CAE仿真在线 来源:互联网
《MATLAB图像滤波去噪分析及其应用》,双线性滤波、Kirsch滤波、超限邻域滤波、逆滤波、双边滤波、同态滤波、小波滤波、六抽头滤波、约束最小平方滤波、非线性复扩散滤波、Lee滤波、Gabor滤波、Wiener滤波、Kuwahara滤波、Beltrami流滤波、Lucy Richardson滤波、NoLocalMeans滤波等研究内容。《MATLAB图像滤波去噪分析及其应用》全面而系统地讲解了MATLAB图像滤波去噪分析及其应用;结合算法理论,详解算法代码(代码全部可执行且验证通过),以帮助读者更好地学习本书内容。对于网上讨论的大部分疑难问题,本书均有涉及。
由此编写YIQ到RGB颜色空间的函数程序如下:
function im1 = yiq2rgb(im)
% 转化矩阵
T = [0.299,0.587,0.114;
0.595716,-0.274453,-0.321263;
0.211456,-0.522591,0.311135]; % 矩阵系数
Ta = [0;0;0];
TT = inv(T); % 求逆矩阵
Tb = TT*Ta;
Y = im(:,:,1); % Y
I = im(:,:,2); % I
Q = im(:,:,3); % Q
Y = im2double(Y); % 转化为double类型
I = im2double(I); % 转化为double类型
Q = im2double(Q); % 转化为double类型
R = -Tb(1,1) + TT(1,1).* Y + TT(1,2).*I + TT(1,3).*Q;
G = -Tb(2,1) + TT(2,1).* Y + TT(2,2).*I + TT(2,3).*Q;
B = -Tb(3,1) + TT(3,1).* Y + TT(3,2).*I + TT(3,3).*Q;
R = mat2gray(R); % 灰度值 转化为 0 - 1之间
G = mat2gray(G); % 灰度值 转化为 0 - 1之间
B = mat2gray(B); % 灰度值 转化为 0 - 1之间
im1(:,:,1) = R;
im1(:,:,2) = G;
im1(:,:,3) = B;
im1 = im2uint8(im1); % 类型转换
调用该函数,程序如下:
%% YIQ --> RGB
clc,clear,close all % 清理命令区、清理工作区、关闭显示图形
warning off % 消除警告
feature jit off % 加速代码运行
im = imread('coloredChips.png');
im1 = rgb2yiq(im); % RGB转化为YIQ
figure('color',[1,1,1])
subplot(121),imshow(im1,[]);title('YIQ')
im2 = yiq2rgb(im1);
subplot(122),imshow(im2,[]);title('RGB')
运行程序输出图形如图1-38所示。
相关标签搜索:MATLAB图像滤波去噪分析及其应用 MatLab培训 MatLab培训课程 MatLab在线视频教程 MatLab技术学习教程 MatLab软件教程 MatLab资料下载 MatLab代做 MatLab基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训