我在阵列中有五个图像。我想检查测试图像的直方图(相关系数)与阵列中的一个图像。为此,我使用的方法是计算测试图像的一个分量与阵列中图像的相关系数。当我尝试使用以下代码执行此操作时,我最后得到了错误。
%storing 5 jpg images of the same size in 3D array
TargetImageArray=cat(3,'1.jpg','2.jpg','3.jpg','4.jpg','5.jpg');
TestImage=imread('1.jpg');
%Extracting the first image in the image array TargetImageArray
TargetImage=TargetImageArray(:,:,1);
%correlation coefficient of the red component of the TestImage and TargetImage
Corr_Coefficient = corr2(TargetImage(:,:,1),TestImage(:,:,1));
但我得到的错误是:
Index exceeds matrix dimensions.
Error in TestComponent (line 6)
Corr_Coefficient = corr2(TargetImage(:,:,1),TestImage(:,:,1));
请帮忙吗?
答案 0 :(得分:0)
此错误表示您正在尝试访问不存在的矩阵元素。如果发生此错误并且您没有立即看到原因,请在repsective行中放置一个断点并检查该行中接收的矩阵元素。
在您的示例中,您尝试访问矩阵TargetImage
的第三维,它只是一维字符数组(它是图像文件名)。这是第5行的结果,您忘记阅读图像。将其更改为
TargetImage=imread(TargetImageArray(:,:,1));