#image #matlab #image-processing #tiff #fingerprint
Вопрос:
Поэтому я пытался реализовать этот алгоритм:https://mega.nz/файл/1Oh21LKT#OkNarLpYgj5ZdxeI203GwgboqrspBwRY0bwNEY3PR34
и я в основном написал код до извлечения мелочей, но теперь я не могу получить список координат x,y в одном файле, чтобы я мог реализовать алгоритм по этим координатам. Я пишу код ниже, чтобы у вас было представление о том, что я написал.
%Read Input Image
binary_image=imbinarize(imread('input_1.tif'));
%Small region is taken to show output clear
binary_image = binary_image(120:400,20:250);
subplot(2,2,1);
imshow(binary_image),title('Input image');
%Thinning
thin_image=~bwmorph(binary_image,'thin',Inf);
subplot(2,2,2);
imshow(thin_image),title('Thinned Image');
%figure,imshow(thin_image),title('Thinned Image');
%Minutiae extraction
s=size(thin_image);
N=3;%window size
n=(N-1)/2;
r=s(1) 2*n;
c=s(2) 2*n;
double temp(r,c);
temp=zeros(r,c);bifurcation=zeros(r,c);ridge=zeros(r,c);
temp((n 1):(end-n),(n 1):(end-n))=thin_image(:,:);
outImg=zeros(r,c,3);%For Display
outImg(:,:,1) = temp .* 255;
outImg(:,:,2) = temp .* 255;
outImg(:,:,3) = temp .* 255;
for x=(n 1 10):(s(1) n-10)
for y=(n 1 10):(s(2) n-10)
e=1;
for k=x-n:x n
f=1;
for l=y-n:y n
mat(e,f)=temp(k,l);
f=f 1;
end
e=e 1;
end
if(mat(2,2)==0)
ridge(x,y)=sum(sum(~mat));
bifurcation(x,y)=sum(sum(~mat));
end
end
end
% RIDGE END FINDING
[ridge_x ,ridge_y]=find(ridge==2);
len=length(ridge_x);
%For Display
for i=1:len
outImg((ridge_x(i)-3):(ridge_x(i) 3),(ridge_y(i)-3),2:3)=0;
outImg((ridge_x(i)-3):(ridge_x(i) 3),(ridge_y(i) 3),2:3)=0;
outImg((ridge_x(i)-3),(ridge_y(i)-3):(ridge_y(i) 3),2:3)=0;
outImg((ridge_x(i) 3),(ridge_y(i)-3):(ridge_y(i) 3),2:3)=0;
outImg((ridge_x(i)-3):(ridge_x(i) 3),(ridge_y(i)-3),1)=255;
outImg((ridge_x(i)-3):(ridge_x(i) 3),(ridge_y(i) 3),1)=255;
outImg((ridge_x(i)-3),(ridge_y(i)-3):(ridge_y(i) 3),1)=255;
outImg((ridge_x(i) 3),(ridge_y(i)-3):(ridge_y(i) 3),1)=255;
end
%BIFURCATION FINDING
[bifurcation_x, bifurcation_y]=find(bifurcation==4);
len=length(bifurcation_x);
%For Display
for i=1:len
outImg((bifurcation_x(i)-3):(bifurcation_x(i) 3),(bifurcation_y(i)-3),1:2)=0;
outImg((bifurcation_x(i)-3):(bifurcation_x(i) 3),(bifurcation_y(i) 3),1:2)=0;
outImg((bifurcation_x(i)-3),(bifurcation_y(i)-3):(bifurcation_y(i) 3),1:2)=0;
outImg((bifurcation_x(i) 3),(bifurcation_y(i)-3):(bifurcation_y(i) 3),1:2)=0;
outImg((bifurcation_x(i)-3):(bifurcation_x(i) 3),(bifurcation_y(i)-3),3)=255;
outImg((bifurcation_x(i)-3):(bifurcation_x(i) 3),(bifurcation_y(i) 3),3)=255;
outImg((bifurcation_x(i)-3),(bifurcation_y(i)-3):(bifurcation_y(i) 3),3)=255;
outImg((bifurcation_x(i) 3),(bifurcation_y(i)-3):(bifurcation_y(i) 3),3)=255;
end
subplot(2,2,3);
imshow(outImg),title('Minutiae');
%figure,imshow(outImg);title('Minutiae');