图像处理 reshape

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:48:36
运行如下程序:
clc
clear all;
A=imread('img01.jpg');
M=size(A,1);
N=size(A,2);
B=reshape(A,1,N*M);
出现以下错误:

To RESHAPE the number of elements must not change.
这问题处在哪啊?

最大的可能是,img01.jpg是一张彩色图像,有三个通道,所以读入的A矩阵尺寸为[M N 3]。
有两种修改方法:
1.把图片转化为灰度图,这样写
A=imread('img01.jpg');
A = rgb2gray(A);
M=size(A,1);
N=size(A,2);
B=reshape(A,1,N*M);

2.直接计算彩色图。
clc
clear all;
A=imread('img01.jpg');
M=size(A,1);
N=size(A,2);
B=reshape(A,1,N*M*3);

变换矩阵的尺寸时,要事先检测其维度,一维(灰度)和三维(彩色)的要分开讨论。