跪求用matlab做数字图像处理森林火灾识别的方法研究

跪求用matlab做数字图像处理森林火灾识别的方法研究,第1张

function ck

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',我毕业设计也是关于图像处理的,不过跟你的方握笑掘向不同,我是处理图像中的缺陷,希望对你有所帮助。

clear

dt=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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12559807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存