资源简介

话不多说,MATLAB同态滤波,有注释,每一步写的清清楚楚,双手奉上,好东西。

资源截图

代码片段和文件信息


clear;
close all;
[namepath] = uigetfile(‘C:\Users\cumthx\Desktop\‘);
file = strcat(pathname);
[Xmap]=imread(file);
X=double(X);
I=rgb2hsv(X);
H=I(::1);
S=I(::2);
V=I(::3);
%if size(X3)==3
 %   X= rgb2gray(X);    
%end
% 装载图片
% 显示这个图片
figureimshow(‘IMG_2883.JPG‘);
title(‘原始图像‘);
% 构造一个高斯滤波器
f_high = 1.0;
f_low = 0.8;
% 得到一个高斯低通滤波器
gauss_low_filter = fspecial(‘gaussian‘ [7 7] 1.414);
matsize = size(gauss_low_filter);%7*7的核
% 由于同态滤波是要滤出高频部分
% 所以得把这个低通滤波器转换成一个高通滤波器.
% f_high 和 f_low 是控制这个高通滤波器形态的参数.
gauss_high_filter = zeros(matsize);
gauss_high_filter(ceil(matsize(11)/2)  ceil(matsize(12)/2)) = 1.0;
gauss_high_filter = f_high*gauss_high_filter - (f_high-f_low)*gauss_low_filter;
% 利用对数变换将入射光和反射光部分分开
log_img = log(double(V)+eps);
 
% 将高斯高通滤波器与

评论

共有 条评论