过滤后获得相同的图像

时间:2014-03-08 19:43:04

标签: matlab image-processing filtering convolution

我正在为指纹毛孔实现匹配过滤器,但作为输出我得到了输入图像..但实际上我应该得到指纹图像的毛孔......我正在实现的等式...

enter image description here

这里Po是θ= 0弧度的孔模型,Ptheta是θ的任何值的孔模型。 西格玛是比例因子......这里是我的代码

for i1 = 1:40:240
        for j1 = 1:40:320
            t = floor(1/F(i1,j1));
            sigma = floor(t/12);

            i = -floor(3*sigma);
            j = floor(3*sigma);
            O = theta(i1,j1);
            blk_im = im(i1:i1+40-1,j1:j1+40-1);
            [x,y] = meshgrid(-(sigma):(sigma));

            if O <= 0
                P = exp((-j^2/2*sigma^2).*cos((pi/3*sigma)*i));
            else   
                i_bar = x.*cos(O)-y.*sin(O);
                j_bar = x.*sin(O)+y.*cos(O);

                P = exp((-(j_bar.^2)/(2*sigma^2)).*cos((pi/3*sigma).*i_bar));
                P_MAP(i1:i1+w-1,j1:j1+w-1) = conv2(blk_im,P,'same');

            end

        end;
    end;
            figure;
            subplot(1,2,1);imshow(im,[]);title('input image');
            subplot(1,2,2);imshow(P_MAP,[]);title('pore filter');

这里θ是以弧度表示的方向值,F是频率。 我的输出 enter image description here

为了获得正确的输出该怎么做...提前感谢

0 个答案:

没有答案