I want to convert matlab code to verilog for my image processing project using hdl coder, i have the code but i dont know how to divide my code into function and test bench, please help me. I m using matlab r2018a version.

22 visualizaciones (últimos 30 días)
if true
% code
end
  1 comentario
Akshatha V Murthy
Akshatha V Murthy el 28 de Oct. de 2018
This is the code, which I wanted to convert to Verilog, please help
clc; close all; clear all; % tic; % Applying SIFT on First Image I = imread('rose.jpg'); I_read = imresize(I,[256 256]); I_enlarge = imresize(I_read,[512 512]); I = rgb2gray(I_enlarge); %I=I_enlarge; imshow(I); I = im2double(I); I_temp = I; original = I; octave1=[]; octave2=[]; octave3=[]; %% FORMING OCTAVES tic; k2=0; sigma_1=1.6; [m,n]=size(I); I_temp(m:m+4,n:n+4)=0; % zero padding clear c; %octave1 tic; for k1=0:3 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp1=I_temp(i:i+4,j:j+4)'.*h; conv_1(i,j)=sum(sum(temp1)); end end figure, imshow(conv_1(1:m-4,1:n-4)); octave1=[octave1 conv_1]; end %% octave 2 clear I_temp; % k2=1; I_temp2=imresize(original,1/((k2+1)*2)); k2=1; y=size(I_temp2); [m,n]=size(I_temp2); I_temp2(m:m+4,n:n+4)=0; clear c;
for k1=0:3 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h1(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp2=I_temp2(i:i+4,j:j+4)'.*h1; conv_2(i,j)=sum(sum(temp2)); end end figure, imshow(conv_2(1:m-4,1:n-4)); octave2=[octave2 conv_2]; end %% octave 3 clear I_temp; % k2=2; I_temp3=imresize(original,1/((k2+1)*2)); z=size(I_temp3) k2=2; [m,n]=size(I_temp3); I_temp3(m:m+4,n:n+4)=0; clear c;
for k1=0:4 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h2(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp3=I_temp3(i:i+4,j:j+4)'.*h2; conv_3(i,j)=sum(sum(temp3)); end end figure, imshow(conv_3(1:m-4,1:n-4)); octave3=[octave3 conv_3]; end clear a; a=imresize(original,1/((k2+1)*2)); fprintf('\n Time for Gaussian scale space construction: %.3f s\n',toc) ;
%% DOG---difference of gaussian tic;
diff_11=octave1(1:512,1:512)-octave1(1:512,513:1024);
diff_12=octave1(1:512,513:1024)-octave1(1:512,1025:1536);
diff_13=octave1(1:512,1025:1536)-octave1(1:512,1537:2048);
diff_21=octave2(1:256,1:256)-octave2(1:256,257:512);
diff_22=octave2(1:256,257:512)-octave2(1:256,513:768);
diff_23=octave2(1:256,513:768)-octave2(1:256,769:1024);
diff_31=octave3(1:128,1:128)-octave3(1:128,129:256);
diff_32=octave3(1:128,129:256)-octave3(1:128,257:384);
diff_33=octave3(1:128,257:384)-octave3(1:128,385:512);
fprintf('\n Time for Differential scale space construction: %.3f s\n',toc) ;
%% find exterma from DOG tic; key=[];
x1=0; y1=0; z1=0; f=0;
for i=2:511 for j=2:511 % x1=0; % y1=0; % z1=0;
if (((diff_12(i,j)>diff_12(i-1,j))&&(diff_12(i,j)>diff_12(i+1,j)).... &&(diff_12(i,j)>diff_12(i,j-1))&&(diff_12(i,j)>diff_12(i+1,j+1)).... &&(diff_12(i,j)>diff_12(i-1,j-1))&&(diff_12(i,j)>diff_12(i-1,j+1))..... &&(diff_12(i,j)>diff_12(i+1,j-1))&&(diff_12(i,j)>diff_12(i,j+1)))) x1=x1+1; else continue; end
if x1>0 if((diff_12(i,j)>diff_13(i,j))&&(diff_12(i,j)>diff_13(i-1,j))..... &&(diff_12(i,j)>diff_13(i+1,j))&&(diff_12(i,j)>diff_13(i,j-1))...... &&(diff_12(i,j)>diff_13(i+1,j+1))&&(diff_12(i,j)>diff_13(i-1,j-1))... &&(diff_12(i,j)>diff_13(i-1,j+1))&&(diff_12(i,j)>diff_13(i+1,j-1))&&(diff_12(i,j)>diff_13(i,j+1))) y1=y1+1; else continue;
end
end
% if y1>0
%
% if ((diff_12(i,j)>diff_11(i,j))&&(diff_12(i,j)>diff_11(i-1,j))&&(diff_12(i,j)>diff_11(i+1,j))&&(diff_12(i,j)>diff_11(i,j-1))&&(diff_12(i,j)>diff_11(i+1,j+1))&&(diff_12(i,j)>diff_11(i-1,j-1))&&(diff_12(i,j)>diff_11(i-1,j+1))&&(diff_12(i,j)>diff_11(i+1,j-1))&&(diff_12(i,j)>diff_11(i,j+1)))
% z1=z1+1;
% else
% continue;
% end
% end
key(i,j)=diff_12(i,j);
f=1;
end end
fprintf('\n Time for finding key points: %.3f s\n',toc) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if f==0
x=0;
y=0;
z=0;
for i=2:511 for j=2:511
if (((diff_12(i,j)<diff_12(i-1,j))&&(diff_12(i,j)<diff_12(i+1,j))&&(diff_12(i,j)<diff_12(i,j-1))&&(diff_12(i,j)<diff_12(i+1,j+1))&&(diff_12(i,j)<diff_12(i-1,j-1))&&(diff_12(i,j)<diff_12(i-1,j+1))&&(diff_12(i,j)<diff_12(i+1,j-1))&&(diff_12(i,j)<diff_12(i,j+1)))) x=x+1; else continue; end
if x>0 if ((diff_12(i,j)<diff_13(i,j))&&(diff_12(i,j)<diff_13(i-1,j))&&(diff_12(i,j)<diff_13(i+1,j))&&(diff_12(i,j)<diff_13(i,j-1))&&(diff_12(i,j)<diff_13(i+1,j+1))&&(diff_12(i,j)<diff_13(i-1,j-1))&&(diff_12(i,j)<diff_13(i-1,j+1))&&(diff_12(i,j)<diff_13(i+1,j-1))&&(diff_12(i,j)<diff_13(i,j+1))) y=y+1; else continue;
end
end
if y>0
if ((diff_12(i,j)<diff_11(i,j))&&(diff_12(i,j)<diff_11(i-1,j))&&(diff_12(i,j)<diff_11(i+1,j))&&(diff_12(i,j)<diff_11(i,j-1))&&(diff_12(i,j)<diff_11(i+1,j+1))&&(diff_12(i,j)<diff_11(i-1,j-1))&&(diff_12(i,j)<diff_11(i-1,j+1))&&(diff_12(i,j)<diff_11(i+1,j-1))&&(diff_12(i,j)<diff_11(i,j+1)))
z=z+1;
else
continue;
end
end
key(i,j)=diff_12(i,j);
end end
end
key1=key*255;
figure,imshow(key1);
%%finding key point location
[key_m,key_n]=size(key); r=1; key_p=[]; for i=1:key_m for j=1:key_n
if key(i,j)>0
% key_p=[key_p,i,j];
key_p(r,1)=i;
key_p(r,2)=j;
r=r+1;
end
end
end
fprintf('\n total number of key points of image 1 are: \n');
length(key_p)
%%magnitude and phase calculation
for i=2:511 for j=2:511 mag_1(i,j)=((diff_12(i+1,j)-diff_12(i-1,j))^2)+((diff_12(i,j+1)-diff_12(i,j-1))^2); phase(i,j)=atan2((diff_12(i,j+1)-diff_11(i,j-1)),(diff_12(i+1,j)-diff_11(i-1,j))); end end mag=sqrt(mag_1);
%% orintation.....
for k=1:length(key_p)
m=key_p(k,1); n=key_p(k,2);
if (m<=2)||(n<=2)||(m>=509)||(n>=509) continue; end temp_mag=mag(m-2:m+2,n-2:n+2); temp_phase=phase(m-2:m+2,n-2:n+2); clear bin_p; clear bin_m; s=1;
for i=1:5 for j=1:5 k1=1; for x=1:36 if temp_phase(i,j)>-pi+(k1-1)*0.1745 && temp_phase(i,j)<-pi+0.1745*k1
bin_p(k1,s)=temp_phase(i,j);
bin_m(k1,s)=temp_mag(i,j);
s=s+1;
end
bin_p(k1,s)=0;
bin_m(k1,s)=0;
%s=s+1;
k1=k1+1;
end
end
end
for i=1:36 d1=sum(bin_m(i,:)); magv(i,k)=d1; end
end
max_mag=max(magv);
for i=1:length(key_p)
if max_mag(1,i)==0
continue;
end
j=find(magv(:,i)==(max_mag(1,i)));
max_mag(2,i)=j;
end
%%discriptor
for k=1:length(key_p)
magv_2=[];
m=key_p(k,1);
n=key_p(k,2);
if (m<=8)||(n<=8)||(m>=503)||(n>=503)
continue;
end
temp_mag_d=mag(m-7:m+8,n-7:n+8);
temp_phase_d=phase(m-7:m+8,n-7:n+8);
store_phase=[]; for i=1:4:13 for j=1:4:13 vijj=temp_mag_d(i:i+3,j:j+3); vijj_phase=temp_phase_d(i:i+3,j:j+3);
%end
store_phase=[store_phase,vijj_phase];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=1;
for i1=1:4
for j1=1:4
k1=1;
for x=1:8
if vijj_phase(i1,j1)>-pi+(k1-1)*(pi/4) && vijj_phase(i1,j1)<-pi+(pi/4)*k1
bin_p1(k1,s)=vijj_phase(i1,j1);
bin_m1(k1,s)=vijj(i1,j1);
s=s+1;
end
bin_p1(k1,s)=0;
bin_m1(k1,s)=0;
%s=s+1;
k1=k1+1;
end
end
end
for g=1:8 d2(:,1)=sum(bin_m1(g,:)); magv_2=[magv_2,d2]; end
end
end
discriptor(k,:)=magv_2(:,:)';
end
%% Applying SIFT on Second Image
fprintf('\n 1- Reduce intensity of Image \n 2- incrase intensity of Image \n 3- change the value of sigma from 1.6 to new Value \n 4- Rotate the Image \n');
choice=input('Enter your Choice: ');
switch choice
case 1
I2=I/5;
% a=imread('lena-256di.png');
% I2=imresize(a,[512 512]);
sigma_1=1.6;
%break;
case 2
I2=I*5;
sigma_1=1.6;
% break;
case 3
% I2=imread('lena256.png');
% I2_read=imresize(I2,[256 256]);
% I2_enlarge=imresize(I2_read,[512 512]);
% I2=rgb2gray(I2_enlarge);
I2=I;
sigma_1= input(' Enter New Sigma value: ');
%break;
case 4
fprintf('read the image \n');
a=I;
% a=rgb2gray(a1);
[m,n]=size(a);
old=[];
map=[];
% theta=20*(pi/180);
theta_i=input('Enter the angle of rotation: ');
theta=theta_i*(pi/180);
for i=1:m
for j=1:n
i1=(cos(theta)*(i-m/2))-(sin(theta)*(j-n/2))+m/2;
j1=(sin(theta)*(i-m/2))+(cos(theta)*(j-n/2))+n/2;
old((i-1)*m+j,1:2)=[i j];
map((i-1)*m+j,1:2)=[floor(i1) floor(j1)];
end
end
b=imrotate(a,theta_i);
[m1,n1]=size(b);
margin=floor((m1-m)/2);
if theta_i==90
for i=1:m
for j=1:n
new((i-1)*m+j,1:2)=[map((i-1)*m+j,1)+margin+1 map((i-1)*m+j,2)+margin];
end
end
elseif theta_i==180
for i=1:m
for j=1:n
new((i-1)*m+j,1:2)=[map((i-1)*m+j,1)+margin map((i-1)*m+j,2)+margin+1];
end
end
else
for i=1:m
for j=1:n
new((i-1)*m+j,1:2)=[map((i-1)*m+j,1)+margin+1 map((i-1)*m+j,2)+margin+1];
end
end
end
for i=1:m
for j=1:n
c(i,j)=b(new((i-1)*m+j,1),new((i-1)*m+j,2));
end
end
% imshow(c);
I2=c;
sigma_1=1.6;
%break;
otherwise
fprintf('\n you have entered a wrong choice \n');
end
%%%%%%%%%%%%%%%%%%%%%% end of switch statement %%%%%%%%%%%%%%%%%
figure,imshow(I2); I2=im2double(I2);
I2_temp=I2; original2=I2; octave_1=[]; octave_2=[]; octave_3=[]; %% forming octaves tic; k2=0; [m,n]=size(I2); I2_temp(m:m+4,n:n+4)=0; % zero padding clear c; tic; for k1=0:3 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp1=I2_temp(i:i+4,j:j+4)'.*h; conv_1(i,j)=sum(sum(temp1)); end end % figure, imshow(conv_1(1:m-4,1:n-4)); octave_1=[octave_1 conv_1]; end %% octave 2 clear I2_temp; % k2=1; I2_temp2=imresize(original2,1/((k2+1)*2)); k2=1; y2=size(I_temp2) [m,n]=size(I2_temp2); I2_temp2(m:m+4,n:n+4)=0; clear c;
for k1=0:3 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h1(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp2=I_temp2(i:i+4,j:j+4)'.*h1; conv_2(i,j)=sum(sum(temp2)); end end % figure, imshow(conv_2(1:m-4,1:n-4)); octave_2=[octave_2 conv_2]; end %% octave 3 clear I2_temp; % k2=2; I3_temp3=imresize(original2,1/((k2+1)*2)); z2=size(I3_temp3) k2=2; [m,n]=size(I3_temp3); I3_temp3(m:m+4,n:n+4)=0; clear c;
for k1=0:4 k=sqrt(2); sigma=(k^(k1+(2*k2)))*sigma_1;
for x=-2:2 for y=-2:2 h2(x+3,y+3)=(1/((2*pi)*((k*sigma)*(k*sigma))))*exp(-((x*x)+(y*y))/(2*(k*k)*(sigma*sigma))); end end
for i=1:m for j=1:n temp3=I3_temp3(i:i+4,j:j+4)'.*h2; conv_3(i,j)=sum(sum(temp3)); end end % figure, imshow(conv_3(1:m-4,1:n-4)); octave_3=[octave_3 conv_3]; end % clear a; % a=imresize(original,1/((k2+1)*2)); fprintf('Time for Gaussian scale space construction: %.3f s\n',toc) ;
%% DOG---difference of gaussian tic;
diff_11_2=octave_1(1:512,1:512)-octave_1(1:512,513:1024);
diff_12_2=octave_1(1:512,513:1024)-octave_1(1:512,1025:1536);
diff_13_2=octave_1(1:512,1025:1536)-octave_1(1:512,1537:2048);
diff_21_2=octave_2(1:256,1:256)-octave_2(1:256,257:512);
diff_22_2=octave_2(1:256,257:512)-octave_2(1:256,513:768);
diff_23_2=octave_2(1:256,513:768)-octave_2(1:256,769:1024);
diff_31_2=octave_3(1:128,1:128)-octave_3(1:128,129:256);
diff_32_2=octave_3(1:128,129:256)-octave_3(1:128,257:384);
diff_33_2=octave_3(1:128,257:384)-octave_3(1:128,385:512);
fprintf('\n Time for Differential scale space construction: %.3f s\n',toc) ;
%% find exterma from DOG tic; key_2=[];
x11=0; y11=0; z11=0; f1=0;
for i=2:511 for j=2:511 % x1=0; % y1=0; % z1=0;
if (((diff_12_2(i,j)>diff_12_2(i-1,j))&&(diff_12_2(i,j)>diff_12_2(i+1,j)).... &&(diff_12_2(i,j)>diff_12_2(i,j-1))&&(diff_12_2(i,j)>diff_12_2(i+1,j+1)).... &&(diff_12_2(i,j)>diff_12_2(i-1,j-1))&&(diff_12_2(i,j)>diff_12_2(i-1,j+1)).... &&(diff_12_2(i,j)>diff_12_2(i+1,j-1))&&(diff_12_2(i,j)>diff_12_2(i,j+1)))) x11=x11+1; else continue; end
if x11>0 if((diff_12_2(i,j)>diff_13_2(i,j))&&(diff_12_2(i,j)>diff_13_2(i-1,j)).... &&(diff_12_2(i,j)>diff_13_2(i+1,j))&&(diff_12_2(i,j)>diff_13_2(i,j-1)).... &&(diff_12_2(i,j)>diff_13_2(i+1,j+1))&&(diff_12_2(i,j)>diff_13_2(i-1,j-1)).... &&(diff_12_2(i,j)>diff_13_2(i-1,j+1))&&(diff_12_2(i,j)>diff_13_2(i+1,j-1)).... &&(diff_12_2(i,j)>diff_13_2(i,j+1))) y11=y11+1; else continue;
end
end
% if y1>0
%
% if ((diff_12(i,j)>diff_11(i,j))&&(diff_12(i,j)>diff_11(i-1,j))&&(diff_12(i,j)>diff_11(i+1,j))&&(diff_12(i,j)>diff_11(i,j-1))&&(diff_12(i,j)>diff_11(i+1,j+1))&&(diff_12(i,j)>diff_11(i-1,j-1))&&(diff_12(i,j)>diff_11(i-1,j+1))&&(diff_12(i,j)>diff_11(i+1,j-1))&&(diff_12(i,j)>diff_11(i,j+1)))
% z1=z1+1;
% else
% continue;
% end
% end
key_2(i,j)=diff_12_2(i,j);
f1=1;
end end
fprintf('\n Time for finding key points: %.3f s\n',toc) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if f1==0
x22=0;
y22=0;
z22=0;
for i=2:511 for j=2:511
if (((diff_12_2(i,j)<diff_12_2(i-1,j))&&(diff_12_2(i,j)<diff_12_2(i+1,j)).... &&(diff_12_2(i,j)<diff_12_2(i,j-1))&&(diff_12_2(i,j)<diff_12_2(i+1,j+1)).... &&(diff_12_2(i,j)<diff_12_2(i-1,j-1))&&(diff_12_2(i,j)<diff_12_2(i-1,j+1)).... &&(diff_12_2(i,j)<diff_12_2(i+1,j-1))&&(diff_12_2(i,j)<diff_12_2(i,j+1)))) x22=x22+1; else continue; end
if x22>0 if ((diff_12_2(i,j)<diff_13_2(i,j))&&(diff_12_2(i,j)<diff_13_2(i-1,j)).... &&(diff_12_2(i,j)<diff_13_2(i+1,j))&&(diff_12_2(i,j)<diff_13_2(i,j-1)).... &&(diff_12_2(i,j)<diff_13_2(i+1,j+1))&&(diff_12_2(i,j)<diff_13_2(i-1,j-1)).... &&(diff_12_2(i,j)<diff_13_2(i-1,j+1))&&(diff_12_2(i,j)<diff_13_2(i+1,j-1)).... &&(diff_12_2(i,j)<diff_13(i,j+1))) y=y+1; else continue;
end
end
% if y>0
%
% if ((diff_12_2(i,j)<diff_11(i,j))&&(diff_12_2(i,j)<diff_11(i-1,j))&&(diff_12_2(i,j)<diff_11(i+1,j))&&(diff_12_2(i,j)<diff_11(i,j-1))&&(diff_12_2(i,j)<diff_11(i+1,j+1))&&(diff_12_2(i,j)<diff_11(i-1,j-1))&&(diff_12_2(i,j)<diff_11(i-1,j+1))&&(diff_12_2(i,j)<diff_11(i+1,j-1))&&(diff_12_2(i,j)<diff_11(i,j+1)))
% z=z+1;
% else
% continue;
% end
% end
key_2(i,j)=diff_12_2(i,j);
end end
end
key22=key_2*255;
figure,imshow(key22);
%%finding key point location
[key_m,key_n]=size(key_2); r=1; key2_p=[]; for i=1:key_m for j=1:key_n
if key_2(i,j)>0
% key_p=[key_p,i,j];
key2_p(r,1)=i;
key2_p(r,2)=j;
r=r+1;
end
end
end
fprintf('total number of key points in second image are : \n'); length(key2_p)
%% magnitude and phase calculation
for i=2:511 for j=2:511 mag_2(i,j)=((diff_12_2(i+1,j)-diff_12_2(i-1,j))^2)+((diff_12_2(i,j+1)-diff_12_2(i,j-1))^2); phase2(i,j)=atan2((diff_12_2(i,j+1)-diff_11_2(i,j-1)),(diff_12_2(i+1,j)-diff_11_2(i-1,j))); end end mag2=sqrt(mag_2);
%% orintation.....
for k=1:length(key2_p)
m=key2_p(k,1); n=key2_p(k,2);
if (m<=2)||(n<=2)||(m>=509)||(n>=509) continue; end temp_mag2=mag2(m-2:m+2,n-2:n+2); temp_phase2=phase2(m-2:m+2,n-2:n+2); clear bin_p; clear bin_m; s=1;
for i=1:5 for j=1:5 k1=1; for x=1:36 if temp_phase2(i,j)>-pi+(k1-1)*0.1745 && temp_phase2(i,j)<-pi+0.1745*k1
bin_p(k1,s)=temp_phase2(i,j);
bin_m(k1,s)=temp_mag2(i,j);
s=s+1;
end
bin_p(k1,s)=0;
bin_m(k1,s)=0;
%s=s+1;
k1=k1+1;
end
end
end
for i=1:36 d1=sum(bin_m(i,:)); magv2(i,k)=d1; end
end
max_mag2=max(magv2);
for i=1:length(key2_p)
if max_mag2(1,i)==0
continue;
end
j=find(magv2(:,i)==(max_mag2(1,i)));
max_mag2(2,i)=j;
end
%%discriptor
for k=1:length(key2_p)
magv_22=[];
m=key2_p(k,1);
n=key2_p(k,2);
if (m<=8)||(n<=8)||(m>=503)||(n>=503)
continue;
end
temp_mag_d2=mag2(m-7:m+8,n-7:n+8);
temp_phase_d2=phase2(m-7:m+8,n-7:n+8);
store_phase2=[]; for i=1:4:13 for j=1:4:13 vijj2=temp_mag_d2(i:i+3,j:j+3); vijj_phase2=temp_phase_d2(i:i+3,j:j+3);
%end
store_phase2=[store_phase2,vijj_phase2];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=1;
for i1=1:4
for j1=1:4
k1=1;
for x=1:8
if vijj_phase2(i1,j1)>-pi+(k1-1)*(pi/4) && vijj_phase2(i1,j1)<-pi+(pi/4)*k1
bin2_p1(k1,s)=vijj_phase2(i1,j1);
bin2_m1(k1,s)=vijj2(i1,j1);
s=s+1;
end
bin2_p1(k1,s)=0;
bin2_m1(k1,s)=0;
%s=s+1;
k1=k1+1;
end
end
end
for g=1:8 d22(:,1)=sum(bin2_m1(g,:)); magv_22=[magv_22,d22]; end
end
end
discriptor2(k,:)=magv_22(:,:)';
end
%% calculating match
count=0; for i=1:length(key_p) for j=1:length(key2_p)
if (key_p(i,1)==key2_p(j,1)) && (key_p(i,2)==key2_p(j,2))
count=count+1;
break;
end
end
end
fprintf('\n total number of matched key points are : \n'); disp(count);
perc=(count/length(key_p))*100; fprintf('\n percentage match in key points are : \n'); disp(perc);

Iniciar sesión para comentar.

Respuesta aceptada

Bharath Venkataraman
Bharath Venkataraman el 25 de Oct. de 2018
Here is an an example showing how to create the design and testbench MATLAB code.

Más respuestas (0)

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by