使用 imresize 调整图像大小会导致八度错误
Resize image using imresize gives an error in octave
我正在尝试使用 Octave 5.2.0 调整非常小的图像的大小,但我不确定为什么在尝试调整它时出现错误
以下行发生错误:
img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
error: interp2: cubic requires at least 2 points in each dimension
error: called from
interp2 at line 244 column 9
imremap at line 65 column 19
imresize at line 135 column 8
test_small_resize_question at line 30 column 17 (the last line which is the imresize line)
代码如下:
pkg load image
f(:,:,1)=[0;0;0;0;127;128;128;128];
f(:,:,2)=[0;0;127;128;0;0;0;0];
f(:,:,3)=[127;128;0;0;0;0;127;128];
%%%%%%%%%%%%%%%%-------------------------------------------------------------------------
[im_r im_c]=size(f);
size_min=min(im_r,im_c); %get minum size from row and col
f2=uint8(f)
imshow(f2)
img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
使用imshow(f2)
创建下图
第 img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
行不会调整它的大小
创建的变量:
使用线路时img_unique_only = imresize(f2, [640, 480], "nearest"); %reshape output of unique colors
创建的变量:
我得到的是 灰度 图像而不是 640x480 彩色图像
注意:如果有更好的方法我也愿意尝试
解决方法是使用 cat
注意:它会创建不正确的颜色渐变。
f(:,:,1)=[0;0;0;0;127;128;128;128];
f(:,:,2)=[0;0;127;128;0;0;0;0];
f(:,:,3)=[127;128;0;0;0;0;127;128];
height_wanted=640;
width_wanted=480;
repmat_rgb=cat(2,f,f); %add another column to array to get imresize to work
reshaped_output = imresize(repmat_rgb, [height_wanted, width_wanted],'cubic'); %reshape swatch to large output
imshow(reshaped_output);
更新:2021 年 7 月 19 日
这是 imresize 中的错误以获取更多信息和解决方法
我正在尝试使用 Octave 5.2.0 调整非常小的图像的大小,但我不确定为什么在尝试调整它时出现错误
以下行发生错误:
img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
error: interp2: cubic requires at least 2 points in each dimension
error: called from
interp2 at line 244 column 9
imremap at line 65 column 19
imresize at line 135 column 8
test_small_resize_question at line 30 column 17 (the last line which is the imresize line)
代码如下:
pkg load image
f(:,:,1)=[0;0;0;0;127;128;128;128];
f(:,:,2)=[0;0;127;128;0;0;0;0];
f(:,:,3)=[127;128;0;0;0;0;127;128];
%%%%%%%%%%%%%%%%-------------------------------------------------------------------------
[im_r im_c]=size(f);
size_min=min(im_r,im_c); %get minum size from row and col
f2=uint8(f)
imshow(f2)
img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
使用imshow(f2)
创建下图
第 img_unique_only = imresize(f2, [640, 480]); %reshape output of unique colors
行不会调整它的大小
创建的变量:
使用线路时img_unique_only = imresize(f2, [640, 480], "nearest"); %reshape output of unique colors
创建的变量:
我得到的是 灰度 图像而不是 640x480 彩色图像
注意:如果有更好的方法我也愿意尝试
解决方法是使用 cat
注意:它会创建不正确的颜色渐变。
f(:,:,1)=[0;0;0;0;127;128;128;128];
f(:,:,2)=[0;0;127;128;0;0;0;0];
f(:,:,3)=[127;128;0;0;0;0;127;128];
height_wanted=640;
width_wanted=480;
repmat_rgb=cat(2,f,f); %add another column to array to get imresize to work
reshaped_output = imresize(repmat_rgb, [height_wanted, width_wanted],'cubic'); %reshape swatch to large output
imshow(reshaped_output);
更新:2021 年 7 月 19 日
这是 imresize 中的错误以获取更多信息和解决方法