如果不使用imresize函数,可以使用以下方法对图像进行缩放:

  1. 使用imread函数读取图像文件并将其存储在一个变量中。
  2. 使用size函数获取图像的原始尺寸。
  3. 使用input函数获取用户输入的缩放比例。
  4. 使用round函数将输入的缩放比例四舍五入为最接近的整数。
  5. 使用zeros函数创建一个新的矩阵,用于存储缩放后的图像。
  6. 使用两个嵌套的循环遍历新矩阵的每个像素,并根据缩放比例计算对应的原始图像像素位置。
  7. 使用floor函数将计算得到的原始图像像素位置向下取整,并确保其在原始图像范围内。
  8. 将原始图像像素值赋值给新矩阵对应的像素位置。
  9. 使用imshow函数显示缩放后的图像。

以下是一个示例代码,用于将图像按照用户输入的缩放比例进行缩放:

% 读取图像并获取原始尺寸
image = imread('image.jpg');
originalSize = size(image);

% 获取用户输入的缩放比例
scaleFactor = input('请输入缩放比例:');

% 四舍五入为最接近的整数
scaleFactor = round(scaleFactor);

% 计算缩放后的尺寸
scaledSize = originalSize * scaleFactor;

% 创建新的矩阵用于存储缩放后的图像
scaledImage = zeros(scaledSize(1), scaledSize(2), size(image, 3));

% 遍历新矩阵的每个像素并赋值
for i = 1:scaledSize(1)
    for j = 1:scaledSize(2)
        % 计算原始图像像素位置
        originalPixel = floor([i, j] / scaleFactor);
        
        % 确保原始图像像素位置在范围内
        originalPixel(1) = max(1, min(originalPixel(1), originalSize(1)));
        originalPixel(2) = max(1, min(originalPixel(2), originalSize(2)));
        
        % 赋值原始图像像素值给新矩阵对应位置
        scaledImage(i, j, :) = image(originalPixel(1), originalPixel(2), :);
    end
end

% 显示缩放后的图像
imshow(uint8(scaledImage));

请注意,这只是一种简单的缩放图像的方法,可能会导致图像质量下降。如果需要更高质量的缩放,请使用imresize函数

matlab对图像进行缩放不适用imresize

原文地址: https://www.cveoy.top/t/topic/h8fD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录