我目前正在尝试制作一个包含多个图案和形状图像的网站(让我们说每张图片中的几个正方形和各种颜色和形状的圆圈)。我的目标是为用户提供上传图像图像的方法,并进行反向图像搜索,以检查我的网站中是否已存在类似的图案图像。那么有没有办法实现相同的,通过自定义代码或使用任何第三方api /小部件等?
答案 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
以下是测试图像及其签名,用于改变外形相似的图像尺寸。
以上所有签名都是由上面给出的代码生成的。