基于形态学的复杂背景目标检测算法

1.问题描述:

        复杂背景下目标检测存在诸多困难,主要为背景对目标检测的干扰,大量噪声存在导致传统导数边缘检测方法的失效等。本文正是针对上述两点,提出了分割区域图像、利用形态学方法检测目标的新算法;即首先利用目标与背景灰度差异性来确定目标的大致区域,将其分割出来,然后再结合多结构元素法进行目标的精确检测。通过与原图像分割、聚类算法分割实验比较,该算法在文中的应用实例中表现出了较好的抗干扰性和抗噪性能。

2.部分程序:

 

clc;clear;close all;
 tic
I0= imread('D:\photo\01.jpg');   % 'D:\photo\5.10\DSC01587.JPG'
figure;imshow(I0);
I1=rgb2gray(I0);

I1=medfilt2(I1,[3 3]);


[x,y]=size(I1);                       %求出图象大小
%figure,imshow(I1);
 
s=strel('disk',15);                   %Top-Hat变换
I2=imopen(I1,s);
%figure,imshow(I2);
title('开运算');
I3=imsubtract(I1,I2);
figure, imshow(I3);title('高帽变换')

se2=strel('disk',4);                  %去除干扰及虚假目标点
I4=imerode(I3,se2);
%figure, imshow(I4);title('腐蚀运算');
se3=strel('diamond',3);
I5=imdilate(I4,se3);
%figure, imshow(I5);title('膨胀运算')


Seg=zeros(x,y);
 z0=max(max(I1));                    % 求出图象中最大的灰度
 z1=min(min(I1));                    % 最小的灰度 
 T=(z0+z1)*0.5;                      % 设定阈值
for i=1:x
   for j=1:y
       if(I5(i,j)>=T)              
           Seg(i,j)=1;               % 阈值分割的图象
      end
  end
end
m=Seg;
figure,subplot(2,2,1),imshow(m);
%%%%%%%%%%%%%%%%%%%%%%%%%%%在原图上用矩形框标注%%%%%%%%%%%%%%%%%%%%%%%

%subplot(2,2,2),imshow(I1);
hold on;
cou=1;
for h=1:x
    for w=1:y
     if(m(h,w)>0.5)   
      toplen = h;                    % topIen 最上纵坐标
        if (cou == 1)
        tpln=toplen;                 % tpIn 最下纵坐标
        end
      cou=cou+1;
     end
    end
end

3.仿真结论:

D-10

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值