帧间差分法

帧间差分法
帧间差分法是常见的目标识别算法,这里是matlab简单实现

% img1=imread('16_57_41.jpg');
% img2=imread('16_57_42.jpg');
img1=imread('C:\\Users\\lenovo\\Desktop\\pic\\12_26_13.jpg');
img2=imread('C:\\Users\\lenovo\\Desktop\\pic\\12_26_14.jpg');
% img1=rgb2gray(img1);
% img2=rgb2gray(img2);
imgdiff=abs(img1-img2);
imshow(imgdiff);

gthre = graythresh(imgdiff)/2;
%  gthre = graythresh(a3);
BW1 = im2bw(imgdiff,gthre);
 figure;imshow(BW1);
   BW1 = bwareaopen(BW1,10);
   figure,imshow(BW1);
   L = bwlabel(BW1);%默认8连通; bwlabe(bw,4);  
STATS = regionprops(L,'all');%STATS中含有所有连通域的properations  
%在bw图像上绘制出连通域的矩形框  
%    figure;imshow(img1);
      figure;imshow(img2);
    obj_temp = 0;
for jj = 1 : size(STATS, 1) 


       if STATS(jj).Area > 10 %& STATS(jj).Extent > 0.08
       boundary = STATS(jj).BoundingBox;  
        if boundary(end-1)>5 &  boundary(end)>5 %  & (abs(STATS(jj).Orientation)<10 | abs(STATS(jj).Orientation)>70)
     rectangle('Position',boundary,'edgecolor','r' );  
     obj_temp = obj_temp+1;
       end
       end

end
% objnum(ii-1) = obj_temp;

猜你喜欢

转载自blog.csdn.net/lichen_6398/article/details/78687802