Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 按特定顺序将图像(3D阵列)转换为2D矩阵_Matlab - Fatal编程技术网

Matlab 按特定顺序将图像(3D阵列)转换为2D矩阵

Matlab 按特定顺序将图像(3D阵列)转换为2D矩阵,matlab,Matlab,假设你有一个200像素的图像。它将是一个10 x 20 x 3的数组,其中页面是颜色层(红色、绿色和蓝色)。如何将其转换为3(行)xn(列,如2000),以便每行表示颜色(行1为红色,行2为绿色等),列表示像素 我尝试过重塑形状,但我得到了一个3×N矩阵,它向下而不是水平地填充行(因此每行都是颜色的混合,而不是特定的颜色)。您使用的想法是正确的,但正如您自己发现的,数组维度的顺序很重要。幸运的是,您可以使用。因此,在您的情况下,“颜色信息”,即第三维度,应设置为第一维度,以便重塑按预期工作 让我

假设你有一个200像素的图像。它将是一个10 x 20 x 3的数组,其中页面是颜色层(红色、绿色和蓝色)。如何将其转换为3(行)xn(列,如2000),以便每行表示颜色(行1为红色,行2为绿色等),列表示像素

我尝试过重塑形状,但我得到了一个3×N矩阵,它向下而不是水平地填充行(因此每行都是颜色的混合,而不是特定的颜色)。

您使用的想法是正确的,但正如您自己发现的,数组维度的顺序很重要。幸运的是,您可以使用。因此,在您的情况下,“颜色信息”,即第三维度,应设置为第一维度,以便
重塑
按预期工作

让我们看一下这段代码片段:

%设置维度
行=10;
cols=20;
%生成人工图像
img=uint8(255*rand(行、列、3));
%独立获取每个通道的颜色
r=重塑(img(:,:,1),1,行*cols);
g=重塑(img(:,:,2),1,行*cols);
b=重塑(img(:,:,3),1,行*cols);
%使用上一个维度置换重塑图像
img2=重塑(排列(img,[3 1 2]),3,行*列);
%比较结果
rOK=(和(r==img2(1,:)==rows*cols)
gOK=(总和(g==img2(2,:)==rows*cols)
bOK=(和(b==img2(3,:)==rows*cols)
为了进行简单的比较,我分别获取了“颜色信息”,参见向量
r
g
、和
b
。然后,我按照上述方式排列原始的
img
,根据需要将其重塑为
3xn
矩阵,并将每一行与
r
g
b
进行比较

希望有帮助

您使用的想法是正确的,但是您自己发现,数组维度的顺序很重要。幸运的是,您可以使用。因此,在您的情况下,“颜色信息”,即第三维度,应设置为第一维度,以便
重塑
按预期工作

让我们看一下这段代码片段:

%设置维度
行=10;
cols=20;
%生成人工图像
img=uint8(255*rand(行、列、3));
%独立获取每个通道的颜色
r=重塑(img(:,:,1),1,行*cols);
g=重塑(img(:,:,2),1,行*cols);
b=重塑(img(:,:,3),1,行*cols);
%使用上一个维度置换重塑图像
img2=重塑(排列(img,[3 1 2]),3,行*列);
%比较结果
rOK=(和(r==img2(1,:)==rows*cols)
gOK=(总和(g==img2(2,:)==rows*cols)
bOK=(和(b==img2(3,:)==rows*cols)
为了进行简单的比较,我分别获取了“颜色信息”,参见向量
r
g
、和
b
。然后,我按照上述方式排列原始的
img
,根据需要将其重塑为
3xn
矩阵,并将每一行与
r
g
b
进行比较

希望有帮助