将图像转换为单元格

时间:2012-04-18 03:37:53

标签: matlab

如何将图像转换为单元格?在mat2cell的转换中运行这个时出错:

close all;
I=imread('D:\prj2.jpg');
Imshow(I);
C=mat2cell(I,[130 97],[130 97]);

1 个答案:

答案 0 :(得分:1)

来自mat2cell的文档:

 mat2cell Break matrix up into a cell array of matrices.
    C = mat2cell(X,M,N) breaks up the 2-D array X into a cell array...

这就是您目前使用mat2cell功能的方法。但是,根据您的错误消息,您的矩阵I似乎不是2D矩阵。如果在命令行中键入ndims(I),则可以查看数组的维数。

从错误消息中,您可以看到您的I有3个维度(图片的第三个维度适用于每个颜色通道)。因此,您必须以不同方式使用mat2cell。在命令提示符下键入help mat2cell,并阅读有关使用mat2cell多维数组的信息。

或者,您可以先从图像中分别提取每个颜色通道,然后分别在每个颜色通道上运行mat2cell

red_channel = I(:, :, 1);
green_channel = I(:, :, 2);
blue_channel = I(:, :, 3);