在图像数组中提取图像的RGB分量(Matlab)

时间:2014-08-05 07:13:31

标签: matlab multidimensional-array rgb correlation

我在阵列中有五个图像。我想检查测试图像的直方图(相关系数)与阵列中的一个图像。为此,我使用的方法是计算测试图像的一个分量与阵列中图像的相关系数。当我尝试使用以下代码执行此操作时,我最后得到了错误。

%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));

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

此错误表示您正在尝试访问不存在的矩阵元素。如果发生此错误并且您没有立即看到原因,请在repsective行中放置一个断点并检查该行中接收的矩阵元素。

在您的示例中,您尝试访问矩阵TargetImage的第三维,它只是一维字符数组(它是图像文件名)。这是第5行的结果,您忘记阅读图像。将其更改为

TargetImage=imread(TargetImageArray(:,:,1));