灰色图像的阴影而不是 RGB
Shades of gray image instead of RGB
我需要在没有 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=zeros(floor(x/ms),floor(y/ms), 3); % it has 3 color layers
p=1;
t=1;
for i=ms+1:ms:x
for j=ms+1:ms:y
arr=A(i-ms:i,j-ms:j, :); % the color info remains unchanged
k=max(max(arr));
result(t,p,:)=k; % `result` is a 3D array
p=p+1;
end
t=t+1;
p=1;
end
我需要在没有 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=zeros(floor(x/ms),floor(y/ms), 3); % it has 3 color layers
p=1;
t=1;
for i=ms+1:ms:x
for j=ms+1:ms:y
arr=A(i-ms:i,j-ms:j, :); % the color info remains unchanged
k=max(max(arr));
result(t,p,:)=k; % `result` is a 3D array
p=p+1;
end
t=t+1;
p=1;
end