如果我有一个大小为400 x 600
的图像。我知道如何通过使用以下代码来调整大小80 x 80
的大小:
original_image = imread(my_image);
original_image_gray = rgb2gray(original_image);
Image_resized = imresize(original_image_gray, [80 80]);
但我认为imresize
会在图像质量上有所损失。那么如何在不损失质量的情况下调整大小呢?
答案 0 :(得分:7)
答案 1 :(得分:2)
Matlab将图像存储为像素阵列。将400x600元素矩阵中包含的所有信息存储在80x80矩阵中是不可能的,因此在调整像素阵列大小时,质量损失是不可避免的,这就是无法实现的。
如果您想减小输出的物理尺寸,您应该查看imgwrite documentation,特别是在创建png图像时的XResolution和YResolution参数。
original_image = imread(my_image);
imwrite(original_image_grey,'image.png','png','ResolutionUnit','cm','XResolution',400)
上面的代码将创建一个原始图像的png,分辨率为400px / cm,从而产生1cm宽的图像。 png仍然是400x600px位图。