zoukankan      html  css  js  c++  java
  • 直方图特征

    图像搜索现实的一般过程:

                             提取图像特征值→对特征值进行处理→匹配特征值

    图像的特征值有很多,基于颜色特征纹理特征形状特征等,下面是基于图像颜色直方图特征的图像搜索。

    利用直方图特征可以实现图像的目标搜索,通过计算两直方图之间的巴氏系数来匹配直方图。

    巴氏系数:

    1363668551_8706

    其中,p,p’(归一化后)代表候选图像与待选图像的直方图特征,可以是16^2个或者16^3个特征区间。该值范围[0 1],z值越大,相似度越高。

    简单的程序:

    clc;close all;clear all;
    %%直方图匹配示意
    img=imread('0329.jpg');
    img1=imread('0332.jpg');
    % imshow(img,[])
    [~,initstate]=imcrop(img);%截取目标框 车
    initstate=fix(initstate); init=initstate;
    
    temp=imcrop(img,initstate);%获取目标模板
    temp = temp(:,:,1);
    rectangle('Position',initstate,'LineWidth',2,'EdgeColor','g');
    
    hist=imhist(temp);%灰度直方图
    hist=hist/sum(hist);%归一化
    k=0;
    %% 下一帧中 在上一帧目标附近一定范围内搜索
     x=[-50:5:50];y=[-50:5:50];initstate1=[0 0 0 0];
    for i=1:length(y)
        for j=1:length(x)
            k=k+1;
    initstate1=[initstate(1)+x(i),initstate(2)+y(j),initstate(3),initstate(4)];
    temp1=imcrop(img1,initstate1);
    temp1 = temp1(:,:,1);
    hist1=imhist(temp1);
    hist1=hist1/sum(hist1);
    q=0;
    %计算巴氏系数
    for f=1:256 
    q=q+sqrt(hist(f)*hist1(f));
    end
     p(j,i)=q;
        end
    end
    %系数最大的即为最优匹配
    [rows,cols]=find(p==max(max(p)));
    
    initstate1=[initstate(1)+x(cols),initstate(2)+y(rows),initstate(3),initstate(4)];
    figure
    imshow(img1,[])
     rectangle('Position',initstate1,'LineWidth',3,'EdgeColor','r');

    前后帧的相似度图如下,我们要找出其中的最大相似度,为0.9827。

    直方图特征作为一种颜色特征,其具有一定的尺度与旋转不变性。其可以应用在图像检索中,如下连接:

    http://blog.csdn.net/luoweifu/article/details/8690835

    http://blog.csdn.net/jia20003/article/details/7771651#comments

    其亦可,在后续跟踪方法中作为一个判断准则,来选择合适的目标patch。

  • 相关阅读:
    读《梦断代码》有感
    The Third Group Meeting!
    第一次课程作业项目报告
    第四次读后感
    个人作业进度(五)
    个人作业进度(四)
    个人作业进度(三)
    个人进度(二)
    个人作业进度(一)
    java中类的封装与继承
  • 原文地址:https://www.cnblogs.com/jsdtqk/p/3974262.html
Copyright © 2011-2022 走看看