Image 灰度图像的阴影代替RGB

Image 灰度图像的阴影代替RGB,image,matlab,rgb,resize-image,Image,Matlab,Rgb,Resize Image,我需要在没有imresize()函数的情况下调整图像大小。但即使我上传RGB图像,结果也是黑白色的。我应该更改什么以接收RGB图像 clc; clear; [FileName, PathName] = uigetfile('*.JPG'); I=imread([PathName FileName]); ms=input('Input index of compression(>1)'); [m,n,v]=size(I); if mod(m,ms)~=0 m=ms*floo

我需要在没有imresize()函数的情况下调整图像大小。但即使我上传RGB图像,结果也是黑白色的。我应该更改什么以接收RGB图像

clc;
clear;

[FileName, PathName] = uigetfile('*.JPG');
I=imread([PathName FileName]);  

ms=input('Input index of compression(>1)');
[m,n,v]=size(I);

if mod(m,ms)~=0
    m=ms*floor(m/ms);
end
if mod(n,ms)~=0
    n=ms*floor(n/ms);
end
C=I(1:m-1,1:n-1,:);
A=double(C);

figure
imshow(C)

[x,y,~]=size(A);
result=zeros(floor(x/ms),floor(y/ms));
p=1;
t=1;
for i=ms+1:ms:x
    for j=ms+1:ms:y
        arr=A(i-ms:i,j-ms:j);
        k=max(max(arr));
        result(t,p)=k;
        p=p+1;
    end
    t=t+1;
    p=1;
end

Ci=uint8(result);
figure
imshow(Ci) ```

RGB图像有3个维度。
imread
函数返回的图像矩阵大小为
height×width×channels
,其中通道数为3(红色、绿色和蓝色)

如果要获得的结果也是RGB图像,则必须对其进行初始化,并用R、G和B颜色值沿三维方向填充其值:

result=0(地板(x/ms)、地板(y/ms)、3);%它有3个颜色层
p=1;
t=1;
对于i=ms+1:ms:x
对于j=ms+1:ms:y
arr=A(i-ms:i,j-ms:j,:);%颜色信息保持不变
k=最大值(最大(arr));
结果(t,p:)=k;%`结果是一个3D数组
p=p+1;
结束
t=t+1;
p=1;
结束

哦,谢谢。这个解决方案比我想象的要简单得多。