zoukankan      html  css  js  c++  java
  • 基于区间统计的颜色直方图图像匹配算法

    算法的原理在:

    点击打开链接


    原理大概意思是:将R,G,B各分量信息 颜色信息划分为 N 区间。

    比例如以下图:4X4X4 的区间

      red
    0-63 64-127 128-191 192-255
    blue 0-63 43 78 18 0
    64-127 45 67 33 2
    128-191 127 58 25 8
    192-255 140 47 47 13
    在统计 各个区间内的像素数:


    ... 

    MATLAB 代码实现 

    就算函数是dhist.m 文件 參数 bins 是须要划分的区间。filename 须要计算 直方图的文件名称。result 为计算的直方图结果。


    function result = dhist(bins,filename)
       pic =  imread(filename);
       PR = pic(:,:,1);
       PG = pic(:,:,2);
       PB = pic(:,:,3);
       %%
       dim = bins^3; %%得到总维数
       %%划分的区间为
       step = round(256/bins);
       %%
        resultr = 0;
        resultg = 0;
        resultb = 0;
       GP=zeros(1,dim);
       for r=0:(bins-1)            %r分量
           resultr = 0;
           for s=(step*r):(step*(r+1)-1)
               resultr = resultr + length(find(PR==s));
           end 
           for g=0:(bins-1)        %g分量
               resultg = 0;
               for s=(step*g):(step*(g+1)-1)
                   resultg = resultg + length(find(PG==s));
               end 
               %% 正确计算了b的数值
               for b=0:(bins-1)    %b分量
                   resultb = 0;
                   %% 划分的区间为
                   for s=(step*b):(step*(b+1)-1)
                       resultb = resultb + length(find(PB==s));
                       %fprintf(' %d
    ',s);   
                   end  
                     GP((bins*bins*r)+((bins*g)+(b+1))) =  GP((bins*bins*r)+((bins*g)+(b+1))) + resultb + resultg + resultr;
               end
               %%
           end
       end
       result = GP;
    %    [M,N]=size(result);
    %    fprintf('%d     %d
    ',M,N);
    end


    
    

    以下是測试文件:一下是 10x10的划分区间

    red = dhist(10,'red.bmp');
    blue = dhist(10,'blue.bmp');
    
    cov = corrcoef(red,blue);
    fprintf('相关系数为 %d
    
    ',cov);










  • 相关阅读:
    挺有意思的HBase日志+Splunk
    eclipse连接远程hadoop集群开发时权限不足问题解决方案
    auxiliary variable(辅助变量)的引入
    auxiliary variable(辅助变量)的引入
    十万个为什么 —— 自然的好奇
    十万个为什么 —— 自然的好奇
    高级鸡汤
    高级鸡汤
    protobuf反射详解
    思想实验(逻辑思维)解题
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9942564.html
Copyright © 2011-2022 走看看