我试图计算目录中图像的直方图,这就是我所做的:
function d = calcHist(img)
% %Compute histograms for entire collection
% % Query by example
fileName2 = 'a/b/*.png';
file2 = dir(fullfile(pwd,fileName2));
for j = 1:size(file2)
d = imread(file2(j).name);
% figure('Name','RGB Image')
% imagesc(d)
% axis image
[IND,map] = rgb2ind(d,32);
% figure('Name','Indexed image with 32 colours')
% imagesc(IND)
colormap colorcube(map)
% axis image
imhist(IND,map)
------------------------------------
%% calculate histogram for a query image
s = imread(img);
[A,cmap] = rgb2ind(s,32);
figure ('Name', 'imge')
imagesc(s)
colormap colorcube(cmap)
axis image
imhist(A,cmap)
end
基本上,我试图通过此功能实现的目的是将图像转换为直方图颜色,并比较两个直方图(目录图像直方图和查询图像直方图),这些直方图会从比较中输出不同的值。 / p>
第一部分输出图像及其直方图,第二部分输出查询图像的直方图。我试图计算文件夹/目录中每个图像的直方图,这样我就可以使用一个以2个直方图作为输入的函数将它们与查询图像进行比较。
我有一个compare(h1,h2)
函数,它从目录和查询图像中获取直方图以获得它们的交集。现在的问题是我不确定如何从上面的代码中获取h1和h2。我尝试为imhist(IND,map)
分配一个值,但它不起作用。如果我不够清楚,我道歉。
另外,是否可以使用hist而不是hist? 我在MATLAb中并不是很擅长,因为我刚刚开始学习它,因为我犯了任何错误。