码迷,mamicode.com
首页 > 编程语言 > 详细

基于灰度的模板匹配算法(三):划分强度一致法(PIU)

时间:2015-08-31 23:45:43      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:模板匹配   划分强度一致法   piu算法   图像匹配   

简介:

前面几篇文章介绍了一些比较基本的基于灰度的图像配准算法:

基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法 

基于灰度的模板匹配算法(二):局部灰度值编码 

基于互信息的图像配准算法:MI、EMI、ECC算法 

本文将介绍一种类似的相似度测量算法,叫做划分强度一致法(Partitioned Intensity UniformityPIU)。

PIU算法:

        1992年,Woods提出了基于划分强度一致的MR-PET图像配准。在医学图像中,同一组织结构在不同的模态下灰度值是不同的。比如骨骼组织在CT图像中灰度值高,在MRI图像中灰度值偏低。

定义:

         PIU测度的基本理念是:同一组织在不同模态下的灰度分布具有某种一致性。换句话说,一种模态下的某个灰度值的像素在另一种模态中是以一个不同的灰度值为中心的分布。

PIU测度的表达式定义为:

技术分享

其中,N为模板中像素总个数,也就是模板行列数的乘积。技术分享技术分享分别表示模板和子图中灰度为rf的像素个数。技术分享表示搜索图中的某个子图。

技术分享

技术分享

技术分享

技术分享

技术分享表示模板R中灰度值为r的像素在子图技术分享中对应位置上像素灰度值之和。其他式子也是同样的道理。

实例验证:

MATLAB代码:

%//划分强度一致法(Partitioned Intennsity Uniformity, PIU)
%%//-------------------------------------------------------
clear all;
close all;
img=rgb2gray(imread('lena.jpg'));
[img_rows img_clos]=size(img);%//搜索图尺寸
x0=40;y0=30;len=64;
R=img(x0:x0+len-1,y0:y0+len-1);%//取一部分作为模板
figure;imshow(R);title('模板');
[rows clos]=size(R);%//模板尺寸
N=rows*clos;
%%//-------------------------------------------------------
uFr=zeros(256,1);uRf=zeros(256,1);
dFr=zeros(256,1);dRf=zeros(256,1);
a=zeros(256,1);b=zeros(256,1);
piu=zeros(img_rows-len,img_clos-len);
for i=1:img_rows-len
    for j=1:5:img_clos-len
        S=img(i:i+len-1,j:j+len-1);%//子图
        for r=0:255
            pos=find(R==r);
            nr=size(pos,1)+eps;%//参考图像中灰度值为r的像素个数
            value1=S(pos);
            uFr(r+1,1)=sum(value1)/nr;%//R中像素为r的位置处,对应S上的像素点均值
            t1=double(S(pos))-uFr(r+1,1);
            dFr(r+1,1)=sum(t1.^2)/nr;

            pos=find(S==r);
            nf=size(pos,1)+eps;%//参考图像中灰度值为r的像素个数
            value2=R(pos);
            uRf(r+1,1)=sum(value2)/nf;
            t2=double(R(pos))-uRf(r+1,1);
            dRf(r+1,1)=sum(t2.^2)/nf;

            a(r+1,1)=(nr*dFr(r+1,1))/(N*uFr(r+1,1)+eps);
            b(r+1,1)=(nf*dRf(r+1,1))/(N*uRf(r+1,1)+eps);
        end
        piu(i,j)=sum(a)+sum(b);
    end
end
%%//-------------------------------------------------------
piu_min=min(min(piu));
[y,x]=find(piu==piu_min);
x=x-1;y=y-1;
figure;imshow(img);hold on;
rectangle('position',[x,y,len-1,len-1],'edgecolor','r');
title('搜索结果');hold off;
%over

输出结果:

技术分享 

技术分享 

参考文献:

1、张娟.医学图像配准中相似性测度的研究[M],2014.

版权声明:本文为博主原创文章,未经博主允许不得转载。

基于灰度的模板匹配算法(三):划分强度一致法(PIU)

标签:模板匹配   划分强度一致法   piu算法   图像匹配   

原文地址:http://blog.csdn.net/hujingshuang/article/details/48140397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!