反向图像搜索实现

时间:2015-10-28 12:34:09

标签: image image-processing

我目前正在尝试制作一个包含多个图案和形状图像的网站(让我们说每张图片中的几个正方形和各种颜色和形状的圆圈)。我的目标是为用户提供上传图像图像的方法,并进行反向图像搜索,以检查我的网站中是否已存在类似的图案图像。那么有没有办法实现相同的,通过自定义代码或使用任何第三方api /小部件等?

1 个答案:

答案 0 :(得分:0)

下面的Ashish是一个matlab代码,用于生成特定二元对象表面的特征,该特征几乎取决于尺寸,您可以使用此概念来匹配不同比例的形状。

function sig = signature(bw,prec)
        boundry = bwboundaries(bw);

        xy = boundry{1};

        x = xy(:,1);
        y = xy(:,2);

        len = length(x);
        res = (len/prec);

        re = rem(res,2);

        if re
            res = ceil(res);
        end

        indexes = 1:res:len;

        xnew = x(indexes);
        ynew = y(indexes);

        cx = round(mean(xnew));
        cy = round(mean(ynew));

        xn = abs(xnew-cx);
        yn = abs(ynew-cy);

        sig = (xn.^2+yn.^2);
        sig = sig/max(sig);

以下是如何使用签名功能的示例:

        clc
        clear all
        close all

        path = 'E:\GoogleDrive\Mathworks\irisDEt\shapes';
        im1 = imread([path,'\3.png']);
        gray1 = ((im1));

        scales = [1,2,3,4];
        gray1 = im2bw(gray1);

        for i = 1:length(scales)
            im = imresize(gray1,scales(i));
            sig = signature(im,25);

            figure,plot(sig)
            fra = getframe();
            image = frame2im(fra);
            imwrite(image,['E:\GoogleDrive\Mathworks\irisDEt\shapes\',num2str(i),'.png'])
        end

以下是测试图像及其签名,用于改变外形相似的图像尺寸。

以上所有签名都是由上面给出的代码生成的。