我编写了一个matlab函数,可以让我从用户那里获取图像的名称,并将其与现有图像进行比较,如果匹配与否则显示...
function matchin
handles = guidata(gcbo);
set(handles.h_text,'String','performing matching...');
[image1, pathname]= uigetfile('*.bmp','Open An Fingerprint image');
Directory = fullfile ('F:','matlab','bin');
D = dir(fullfile(Directory,'*.bmp'));
set(handles.h_text,'String','matching complete....');
for i = 1:numel(D)
if strcmp(image1,D(i).name)
disp('matched');
else
disp('not matched');
end
end
上面的代码检查文件名是否存在,但我现在要比较图像本身而不是文件名。我怎么能这样做?请帮忙..
此致
普里亚
答案 0 :(得分:1)
使用strcmp
代替==
来比较未知长度的字符串。您可以将for loop
更改为:
D = dir(Directory);
for i = 1:numel(D)
if strcmp(image1,D(i).name)
disp('matched');
else
disp('not matched');
end
end
答案 1 :(得分:1)
你的功能应该是这样的:
function image1=matchin
[image1, pathname]= uigetfile('*.bmp','Open An Fingerprint image');
Directory = fullfile ('F:','matlab','bin');
D = dir(fullfile(Directory,'*.bmp'));
imcell = {D.name}';
for i = 1:numel(D)
if strcmp(image1,imcell{i})
disp('matched');
else
disp('not matched');
end
end
end
使用{D.name}'
获取每个文件的名称。至少当我在带有图像的文件夹中尝试它时,这就是我的工作方式。