close all
clear all
I=imread('ck.bmp')%读取图像
subplot(3,3,1)
imshow(I) %显示原始图像
title('原段核始图像')
P1=imnoise(I,'gaussian',0.02) %加入高斯躁声
subplot(3,3,2)
imshow(P1)%加入高斯躁声后显示图像
title('加入高斯噪声后的图像')
I1=im2double(P1)%将彩图序列变成双精度
I2=rgb2gray(I1)%将彩色图变成灰色图
[thr, sorh, keepapp]=ddencmp('den','wv',I2)
I3=medfilt2(I2,[9 9])%中值滤波
I4=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp)%小波除噪
I5=imresize(I4,1.5,'bicubic')%图像大小
BW1=edge(I5,'sobel')%sobel图像边缘提取
BW2=edge(I5,'roberts')%roberts图像边缘提取
BW3=edge(I5,'prewitt')%prewitt图像边缘提取
BW4=edge(I5,'log')%log图像边缘提取
BW5=edge(I5,'canny')%canny图升誉像边缘提取
h=fspecial('gaussian',5)%高斯滤波
BW6=edge(I5,'zerocross',[ ],h)%zerocross图像边缘提取
figure
subplot(1,3,1)%图划分为一行三幅图,第一幅图
imshow(I2)%绘图
title('灰度图')
subplot(1,3,2)
imshow(I3)
title('中值滤波后图')
subplot(1,3,3)
imshow(I4)
title('小波除噪后图')
figure
subplot(1,3,1)
imshow(BW1)
title('Sobel算子')
subplot(1,3,2)
imshow(BW2)
title('Roberts算子')
subplot(1,3,3)
imshow(BW3)
title('Prewitt算子')
save datI4 I4
ck1
function ck1
load datI4 I4%导入数据I4
figure
plot(I4)
U=I4
save datU U%存入数据U
I4=I4-0.4438
for i=1:166
for j=1:189
if I4(i,j)<=0
I4(i,j)=0
else
I4(i,j)=1
end
end
end
figure
plot(I4)
B=sum (sum(I4))
上面是我毕业设计用到的一些程序,图像名字'ck.bmp',我毕业设计也是关于图像处理的,不过跟你的方握笑掘向不同,我是处理图像中的缺陷,希望对你有所帮助。
cleardt=0.001
t=0:dt:5
a=-pi:0.1:pi
l=10r=.8d=1%导d尺度耐首参数:长度、半径、火焰尺度
L=lD=l/3c=pi/4R=L*tan(c)%飞机外形尺度参数:长度、尾翼宽、翼展(半)角度、翼(半)展
size(t)
n=ans(1,2)
for J=1:n
Ax(J)=90*t(J)%目标飞行轨道
Ay(J)=120%
alpha=0%飞机方向角
if J==1
theta=pi+atan(Ay(J)/Ax(J))%导d方向角
b=(pi/2-theta):0.2:(pi+pi/2-theta)
vx(J)=630*cos(theta)
vy(J)=630*sin(theta)
svx(J)=0
svy(J)=0
else
svx(J)=svx(J-1)+vx(J-1)*dt
svy(J)=svy(J-1)+vy(J-1)*dt
if (Ax(J)-svx(J))<0
theta=pi+atan((Ay(J)-svy(J))/(Ax(J)-svx(J)))
b=(pi/2-theta):0.2:(pi+pi/2-theta)
vx(J)=630*cos(theta)
vy(J)=630*sin(theta)
else
theta=atan((Ay(J)-svy(J))/(Ax(J)-svx(J)))
b=(theta-pi/2):0.2:(pi/2+theta)
vx(J)=630*cos(theta)
vy(J)=630*sin(theta)
end
end
x=Ax(J)+20*cos(a)y=Ay(J)+20*sin(a)%瞄准镜
%---------------------------飞机外形轮廓点描述----------------------------
x6(1)=Ax(J)+L/2*cos(alpha)
x6(2)=Ax(J)-L/2*cos(alpha)+R*sin(alpha)
x6(3)=Ax(J)-(L/2+D)*cos(alpha)+5/6*R*sin(alpha)
x6(4)=Ax(J)-L/2*cos(alpha)+R/3*sin(alpha)
x6(5)=Ax(J)-(L/2+D)*cos(alpha)+R/2*sin(alpha)
y6(1)=Ay(J)+L/2*sin(alpha)
y6(2)=Ay(J)-L/2*sin(alpha)-R*cos(alpha)
y6(3)=Ay(J)-(L/2+D)*sin(alpha)-5/6*R*sin(alpha)
y6(4)=Ay(J)-L/2*sin(alpha)-R/3*cos(alpha)
y6(5)=Ay(J)-(L/2+D)*sin(alpha)-R/2*cos(alpha)
x7(1)=Ax(J)+L/2*cos(alpha)
x7(2)=Ax(J)-L/2*cos(alpha)-R*sin(alpha)
x7(3)=Ax(J)-(L/2+D)*cos(alpha)-5/6*R*sin(alpha)
x7(4)=Ax(J)-L/春纯2*cos(alpha)-R/3*sin(alpha)
x7(5)=Ax(J)-(L/2+D)*cos(alpha)-R/2*sin(alpha)
x7(6)=Ax(J)+L/2*cos(alpha)
y7(1)=Ay(J)+L/2*sin(alpha)
y7(2)=Ay(J)-L/2*sin(alpha)+R*cos(alpha)
y7(3)=Ay(J)-(L/2+D)*sin(alpha)+5/6*R*sin(alpha)
y7(4)=Ay(J)-L/2*sin(alpha)+R/3*cos(alpha)
y7(5)=Ay(J)-(L/2+D)*sin(alpha)+R/2*cos(alpha)
y7(6)=Ay(J)+L/2*sin(alpha)
xf=cat(2,x6,x7)
yf=cat(2,y6,y7)
%---------------------------------------------------------------------
%----------------------------以下计算扒亩咐导d轮廓--------------------------
x1=svx(J)+r*cos(b)y1=svy(J)+r*sin(b)%导d头围线(半圆形)
x2=[svx(J)+r*sin(theta),svx(J)-l*cos(theta)+r*sin(theta),svx(J)-l*cos(theta)-r*sin(theta),svx(J)-r*sin(theta)]%导d箭身四个顶点坐标
y2=[svy(J)-r*cos(theta),svy(J)-l*sin(theta)-r*cos(theta),svy(J)-l*sin(theta)+r*cos(theta),svy(J)+r*cos(theta)]%导d箭身四个顶点坐标
xt=cat(2,x2,x1)%轮廓
yt=cat(2,y2,y1)%
%----------------------------------------------------------------------
%------------------以下计算导d尾部的火焰点(呈三角状排列)------------------
p=0
for m=1:5
for k=0:abs(4-m)
p=p+1
x3(p)=svx(J)-(l+m*d)*cos(theta)+r/2*k*sin(theta)%火焰点
y3(p)=svy(J)-(l+m*d)*sin(theta)-r/2*k*cos(theta)
x4(p)=svx(J)-(l+m*d)*cos(theta)-r/2*k*sin(theta)%火焰点
y4(p)=svy(J)-(l+m*d)*sin(theta)+r/2*k*cos(theta)
end
end
%--------------------------------------------------------------------
%--------------------------------------------------------------------
x5=cat(2,x3,x4)%火焰
y5=cat(2,y3,y4)%
%-----导d--飞机--火焰----瞄准镜(框)--------导d轨迹-------------d头--------------飞机轨迹---------准心--------
plot(xt,yt,xf,yf,x5,y5,'r',x,y,'g',svx(1:J),svy(1:J),'r',svx(J),svy(J),'*',Ax(1:J),Ay(1:J),Ax(J),Ay(J),'+')
axis([-50 150 0 180])
drawnow
s=sqrt((svy(J)-Ay(J))^2+(svx(J)-Ax(J))^2)%导d与目标的距离
if s<=1%30*dt
disp('击中点坐标:')
X=Ax(J)
Y=Ay(J)
disp('误差不超过(米):')
ds=s
%------------爆炸后的区域(圆形)-------------------
rr=0:2:10p=0:0.1:2*pi+0.1
[rr,p]=meshgrid(rr,p)
xx=X+rr.*cos(p)yy=Y+rr.*sin(p)
%-----------------------------------------
%-------导d轨迹----------------飞机轨迹---爆炸残骸区----
plot(svx(1:J),svy(1:J),'r',Ax(1:J),Ay(1:J),xx,yy,'.')
axis([-50 150 0 180])
disp('飞行时间:')
T=J*dt
disp('误差不超过(小时):')
dt
break
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)