数字图像处理均衡化规定化平滑滤波增强变换代码Word下载.docx
- 文档编号:18405533
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:21
- 大小:18.90KB
数字图像处理均衡化规定化平滑滤波增强变换代码Word下载.docx
《数字图像处理均衡化规定化平滑滤波增强变换代码Word下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理均衡化规定化平滑滤波增强变换代码Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
Z
fori=0:
255
P_photo(i+1,k)=length(find(photo(:
:
k)==i))/(X*Y);
end
end
figure
holdon
subplot(2,2,1),bar(P_photo),title('
原来图像的直方图'
%原来图像的直方图
Pp_photo=zeros(256,Z);
Pp_photo(i+1,k)=sum(P_photo(1:
i+1,k));
Sk=round(Pp_photo*255);
Ps_photo(i+1,k)=sum(P_photo(find(Sk(:
k)==i),k));
subplot(2,2,2),bar(Ps_photo),title('
均衡化后的直方图'
%均衡化后的直方图
PS=photo(:
k);
PS(find(photo(:
k)==i))=Sk(i+1,k);
Photo(:
k)=PS;
subplot(2,2,3),imshow(photo),title('
原图像'
)%显示原图
subplot(2,2,4),imshow(Photo),title('
均衡化后图像'
)%均衡化后图像
%functionguiding()
%直方图规定化
c=input('
请输入编号3'
clearall,clc;
photo1=imread('
a2.bmp'
photo2=imread('
cell.bmp'
[X1,Y1,Z1]=size(photo1);
[X2,Y2,Z2]=size(photo2);
ifZ1==Z2
Pr_photo1=zeros(256,Z1);
Pr_photo2=zeros(256,Z2);
fork=1:
Z1
Pr_photo1(i+1,k)=length(find(photo1(:
k)==i))/(X1*Y1);
Pr_photo2(i+1,k)=length(find(photo2(:
k)==i))/(X2*Y2);
Pz_photo1=zeros(256,Z1);
Pz_photo2=zeros(256,Z1);
Pz_photo1(i+1,k)=sum(Pr_photo1(1:
Pz_photo2(i+1,k)=sum(Pr_photo2(1:
Sk2=round(Pz_photo2*255);
Ps_photo2(i+1,k)=sum(Pr_photo2(find(Sk2(:
P_photo2=zeros(256,Z1);
p_photo2=zeros(256,Z1);
Temp=Sk2(:
ifPs_photo2(i+1,k)~=0
P_photo2(i+1,k)=sum(Ps_photo2(1:
[data,point]=min(abs(P_photo2(i+1,k)*ones(256,1)-Pz_photo1(:
k)));
Sk2(find(Temp==i),k)=point-1;
p_photo2(point,k)=Ps_photo2(i+1,k);
Temp=photo2(:
Temp(find(photo2(:
k)==i))=Sk2(i+1,k);
PHOTO2(:
k)=Temp;
subplot(4,2,1),imshow(photo1),title('
原图1'
subplot(4,2,2),imshow(photo2),title('
原图2'
subplot(4,2,3),imshow(PHOTO2),title('
图2后'
subplot(4,2,4),bar(Pr_photo1),title('
subplot(4,2,5),bar(Pr_photo2),title('
subplot(4,2,6),bar(Ps_photo2),title('
原图2均衡化'
subplot(4,2,7),bar(p_photo2),title('
原图2规定化'
else
errordlg('
选取的图片格式不一样!
!
'
FileError'
%functionImage_Smooth()
%图像平滑代码
%%%%%%%%%%%%%%%%图像空间平滑%%%%%%%%%%%%%
d=input('
请输入编号4'
closeall;
clear,clc;
subplot(3,2,1);
imshow(A);
title('
A1=double(A);
s=size(A1);
iflength(s)==2
fori=2:
length(A1)-1
forj=2:
C(i,j)=(A1(i-1,j-1)+A1(i-1,j)+A1(i-1,j+1)+A1(i,j-1)+A1(i,j+1)+A1(i+1,j-1)+A1(i+1,j)+A1(i+1,j+1))/9;
A1(i,j)=C(i,j);
subplot(3,2,2)
imshow(A1,[]);
title('
局部平滑后的图像'
%中值滤波
A4=A;
length(A4)-1
a4=sort([A4(i-1,j-1),A4(i-1,j),A4(i-1,j+1),A4(i,j-1),A4(i,j),A4(i,j+1),A4(i+1,j-1),A4(i+1,j),A4(i+1,j+1)]);
A4(i,j)=a4(5);
subplot(3,2,3)
imshow(A4);
中值滤波后的图像'
%%%%%%%%%%%%%%%梯度倒数加权平滑法%%%%%%%%%%%%%%%%%
A2=A;
fori=2%:
length(A2)-1
forj=2%:
length(A2)-1%当f(i,j)=G(i,j)时,梯度为2
f=[A2(i-1,j-1),A2(i-1,j),A2(i-1,j+1),
A2(i,j-1),A2(i,j),A2(i,j+1),
A2(i+1,j-1),A2(i+1,j),A2(i+1,j+1)];
g1=2.*sum(1./abs(A2(i-1,j-1)-A2(i,j))+1./abs(A2(i-1,j)-A2(i,j))+1/2+1./abs(A2(i-1,j+1)-A2(i,j))+...
1./abs(A2(i,j-1)-A2(i,j))+1./abs(A2(i,j+1)-A2(i,j))+1./abs(A2(i+1,j-1)-A2(i,j))+...
1./abs(A2(i+1,j)-A2(i,j))+1./abs(A2(i+1,j+1)-A2(i,j)));
w=1./(2.*g1).*[1./abs(A2(i-1,j-1)-A2(i,j)),1./abs(A2(i-1,j)-A2(i,j)),1./abs(A2(i-1,j+1)-A2(i,j));
1./abs(A2(i,j-1)-A2(i,j)),1./2,1./abs(A2(i,j+1)-A2(i,j));
1./abs(A2(i+1,j-1)-A2(i,j)),1./abs(A2(i+1,j)-A2(i,j)),1./abs(A2(i+1,j+1)-A2(i,j))];
g2=sum(f.*w);
G=sum(g2);
A2(i,j)=G;
A2=uint8(A2);
subplot(3,2,4)
imshow(A2);
梯度倒数加权后的图像'
%%%%%%%%%%%%%%%最大值滤波%%%%%%%%%%%%%
A3=A;
n=2,c=2;
mask=ones(n,n);
A3=double(A3);
A3_max=A3;
%I1_min=I1;
fori=1:
length(A3)-1
forj=1:
a=A3(i:
i+1,j:
j+1);
a=a.*mask;
A_max(i,j)=max(max(a));
subplot(3,2,5)
imshow(A_max,[])
最大值滤波后的图像'
%%%%%%%%%%%%%最小值滤波%%%%%%%%%%%%
A5=A;
A5=double(A5);
A5_min=A5;
length(A5)-1
a5=A5(i:
a5=a5.*mask;
A5_min(i,j)=min(min(a5));
subplot(3,2,6)
imshow(A5_min,[])
最小值滤波后的图像'
elseiflength(s)==3
[m,n,p]=size(A);
p
m-1
n-1
C(i,j,k)=(A1(i-1,j-1,k)+A1(i-1,j,k)+A1(i-1,j+1,k)+A1(i,j-1,k)+A1(i,j+1,k)+A1(i+1,j-1,k)+A1(i+1,j,k)+A1(i+1,j+1,k))/9;
A1(i,j,k)=C(i,j,k);
imshow(uint8(A1));
%%%%%%%中值滤波%%%%%%%%
A4=A1;
a4=sort([A4(i-1,j-1,k),A4(i-1,j,k),A4(i-1,j+1,k),A4(i,j-1,k),A4(i,j,k),A4(i,j+1,k),A4(i+1,j-1,k),A4(i+1,j,k),A4(i+1,j+1,k)]);
A4(i,j,k)=a4(5);
imshow(uint8(A4));
%%%%%%%%%%%梯度倒数加权平滑法%%%%%%%%%%%%
f=[A2(i-1,j-1,k),A2(i-1,j,k),A2(i-1,j+1,k),
A2(i,j-1,k),A2(i,j,k),A2(i,j+1,k),
A2(i+1,j-1,k),A2(i+1,j,k),A2(i+1,j+1,k)];
g1=2.*sum(1./abs(A2(i-1,j-1,k)-A2(i,j,k))+1./abs(A2(i-1,j,k)-A2(i,j,k))+1/2+1./abs(A2(i-1,j+1,k)-A2(i,j,k))+...
1./abs(A2(i,j-1,k)-A2(i,j,k))+1./abs(A2(i,j+1,k)-A2(i,j,k))+1./abs(A2(i+1,j-1,k)-A2(i,j,k))+...
1./abs(A2(i+1,j,k)-A2(i,j,k))+1./abs(A2(i+1,j+1,k)-A2(i,j,k)));
w=1./(2.*g1).*[1./abs(A2(i-1,j-1,k)-A2(i,j,k)),1./abs(A2(i-1,j,k)-A2(i,j,k)),1./abs(A2(i-1,j+1,k)-A2(i,j,k));
1./abs(A2(i,j-1,k)-A2(i,j,k)),1./2,1./abs(A2(i,j+1,k)-A2(i,j,k));
1./abs(A2(i+1,j-1,k)-A2(i,j,k)),1./abs(A2(i+1,j,k)-A2(i,j,k)),1./abs(A2(i+1,j+1,k)-A2(i,j,k))];
A2(i,j,k)=G;
imshow(uint8(A2));
%%%%%%最大值滤波%%%%%%%
mask=ones(n,c);
j+1,k);
A_max(i,j,k)=max(max(a));
imshow(uint8(A_max))
%%%%%%%%最小值滤波%%%%%%%%
A5_min(i,j,k)=min(min(a5));
imshow(uint8(A5_min))
%end
%functionImageShape()
%各种算子
%图像空间域锐化
e=input('
请输入编号6'
photo=imread('
imshow(photo),title('
fori=1:
X-1
Y-1
fx(i,j)=photo(i,j+1)-photo(i,j);
fy(i,j)=photo(i+1,j)-photo(i,j);
grad_T=abs(fx)+abs(fy);
%梯度算子
subplot(2,3,1),imshow(grad_T),title('
梯度算子图像'
fx(i,j)=abs(photo(i+1,j+1)-photo(i,j));
fy(i,j)=abs(photo(i+1,j)-photo(i,j+1));
grad_R=abs(fx)+abs(fy);
%Roberts算子
subplot(2,3,2),imshow(grad_R),title('
Roberts算子图像'
fori=2:
fx(i,j)=photo(i-1,j+1)-photo(i-1,j-1)+photo(i,j+1)-photo(i,j-1)+photo(i+1,j+1)-photo(i+1,j-1);
fy(i,j)=photo(i+1,j-1)-photo(i-1,j-1)+photo(i+1,j)-photo(i-1,j)+photo(i+1,j+1)-photo(i-1,j+1);
grad_P=abs(fx)+abs(fy);
%Prewitt算子
subplot(2,3,3),imshow(grad_P),title('
Prewitt算子图像'
fx(i,j)=photo(i-1,j+1)-photo(i-1,j-1)+2*(photo(i,j+1)-photo(i,j-1))+photo(i+1,j+1)-photo(i+1,j-1);
fy(i,j)=photo(i+1,j-1)-photo(i-1,j-1)+2*(photo(i+1,j)-photo(i-1,j))+photo(i+1,j+1)-photo(i-1,j+1);
grad_S=abs(fx)+abs(fy);
%Sobel算子
subplot(2,3,4),imshow(grad_S),title('
Sobel算子图像'
dxy_L(i,j)=photo(i+1,j)+photo(i-1,j)+photo(i,j+1)+photo(i,j-1)-4*photo(i,j);
grad_L=photo(1:
X-1,1:
Y-1)-dxy_L;
%Laplacian增强算子
subplot(2,3,5),imshow(grad_L),title('
Laplacian增强算子图像'
fori=3:
X-2
forj=3:
Y-2
dxy_G(i,j)=-2*photo(i-2,j-2)-4*photo(i-2,j-1)-4*photo(i-2,j)-4*photo(i-2,j+1)-2*photo(i-2,j+2)...
-4*photo(i-1,j-2)+0*photo(i-1,j-1)+8*photo(i-1,j)+0*photo(i-1,j+1)-4*photo(i-1,j+2)...
-4*photo(i,j-2)+8*photo(i,j-1)+24*photo(i,j)+9*photo(i,j+1)-4*photo(i,j+2)...
-4*photo(i+1,j-2)+0*photo(i+1,j-1)+8*photo(i+1,j)+0*photo(i+1,j+1)-4*photo(i+1,j+2)...
-2*photo(i+2,j-2)-4*photo(i+2,j-1)-4*photo(i+2,j)-4*photo(i+2,j+1)-2*photo(i+2,j+2);
grad_G=photo(1:
X-2,1:
Y-2)-dxy_G;
%LOG算子图像
subplot(2,3,6),imshow(grad_G),title('
LOG算子图像'
%functionImageStrength()
%图像增强
f=input('
请输入编号7'
while1
Canshu={'
请输入一个合适的阈值T(0-255):
请输入指定的灰度级Lg(0-255):
请输入指定的灰度级Lb(0-255):
};
Dlg_title='
输入参数:
Num_lines=1;
Def={'
128'
0'
255'
Answer=inputdlg(Canshu,Dlg_title,Num_lines,Def);
3
answer(i)=str2num(cell2mat(Answer(i)));
if0<
=min(answer)&
max(answer)<
=255
break;
else
输入参数错误,请重新输入!
InputError'
loadtrain
sound(y,Fs);
grad=grad_L;
T=answer
(1);
Lg=answer
(2);
Lb=answer(3);
fxy=photo(1:
Y-1);
gradxy=grad;
Fg1=gradxy;
gradxy(find(grad<
T))=fxy(find(grad<
T));
Fg2=gradxy;
gradxy(find(grad>
=T))=Lg;
Fg3=gradxy;
T))=Lb;
Fg4=gradxy;
Fg5=gradxy;
subplot(2,3,1),imshow(photo),title('
原图'
subplot(2,3,2),imshow(Fg1),title('
情况一'
subplot(2,3,3),imshow(Fg2),title('
情况二'
subplot(2,3,4),imshow(Fg3),title('
情况三'
subplot(2,3,5),imshow(Fg4),title('
情况四'
subplot(2,3,6),imshow(Fg5),title('
情况五'
%fun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 均衡 规定 平滑 滤波 增强 变换 代码