# MATLAB代做-python代做-FPGA代做- 找到图像中最大相似性的出现位置

### 时间：2019-5-26 0:53:27 点击：

核心提示：MATLAB代做-python代做-FPGA代做- 找到图像中最大相似性的出现位置...
clear,clc;
%I0=rgb2gray(I00);
%imshow(I0);
I1=I0(1:450,1:650,:);
I2=I0(100:500,100:700,:);
%figure,imshow(I1);
%figure,imshow(I2)

figure
imshow(I1);
[T0,rect]=imcrop(I1);
T=rgb2gray(T0);
hold on;
rectangle('Position',[rect(1),rect(2),size(T,2),size(T,1)],...
'EdgeColor','r');
X0=rect(1);Y0=rect(2);
%X0=uint(X0);Y0=uint(Y0);
im_template=T;
im_matched=rgb2gray(I2);
dim_matched =double(im_matched);
dim_template = double(im_template);

%方差
sigmaST = 0.0;
sigmaS = 0.0;
sigmaT = 0.0;
%相似性测度
%double R
%最大相似性测度
MaxR = 0.0;
%最大相似性出现位置
maxWidth=0;
maxHeight=0;
%计算sigmaT

[tempheight,tempwidth] = size(im_template);
for n =1:tempheight
for m =1:tempwidth
sigmaT = sigmaT + dim_template(n,m)^2;
end
end
sigmaT = sqrt(sigmaT);

%找到图像中最大相似性的出现位置
[height,width] = size(im_matched);
% width = size(im_matched,2);
for j =1:height-tempheight
for i =1:width-tempwidth
sigmaST = 0;
sigmaS = 0;
for n = 1:tempheight
for m = 1:tempwidth
sigmaS = sigmaS +  dim_matched(j+n,i+m)^2;
sigmaST = sigmaST + dim_template(n,m)*dim_matched(j+n,i+m);
end
end

%计算相似性
sigmaS = sqrt(sigmaS);
R = sigmaST /(sigmaS*sigmaT);
%与最大相似性比较
if(R >MaxR)
MaxR = R;
maxWidth = i+1;
maxHeight =j+1;
end
end
end
%recWidth = [maxWidth maxWidth+tempwidth-1 maxWidth+tempwidth-1 maxWidth maxWidth];
%recHeight = [maxHeight maxHeight maxHeight+tempheight-1 maxHeight+tempheight-1 maxHeight];
figure,imshow(I2)
hold on
rectangle('Position',[maxWidth,maxHeight,size(T,2),size(T,1)],...
'EdgeColor','g');
dm=-1*(X0-maxWidth), dn=-1*(Y0-maxHeight)

QQ ：1224848052

• 百度搜索
• 查阅资料过程中
• 论坛发现
• 百度贴吧发现
• 朋友介绍
• 没有相关文章
• 大名：
• 内容：