【问题标题】:Matlab- zero paddingMatlab-零填充
【发布时间】:2011-09-29 00:58:23
【问题描述】:

如何在matlab上做到这一点?

用五像素零填充面部图像 厚厚的边缘围绕的边界 图片。显示生成的图像。

必须是脚本上的手动代码。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    将此函数另存为create_padded_image.m

    function padded_image = create_padded_image(image, padding)
    
    if nargin < 2
        % if no padding passed - define it.
        padding = 5;
    end
    
    if nargin < 1
        % let's create an image if none is given
        image = rand(5, 4)
    end
    
    % what are the image dimensions?
    image_size = size(image);
    
    
    % allocate zero array of new padded image
    padded_image = zeros(2*padding + image_size(1), 2*padding + image_size(2))
    
    % write image into the center of padded image
    padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2)) = image;
    
    end
    

    然后这样称呼它:

    % read in image - assuming that your image is a grayscale image
    $ image = imread(filename);
    $ padded_image = create_padded_image(image)
    

    【讨论】:

    • 这就是全部? matlab如何调用tix函数?我对matlab很陌生,所以我无法真正解决它。很抱歉给您带来麻烦。
    • 是的,这就是你所需要的。如果未传递任何填充,则此函数将创建一个。如果没有给出图像 - 该函数也会创建一个。
    • 嗨,我已经为你刚才提供的第一部分试用了你的程序......并且理解,但我需要这个脚本形式,而不是通过在 matlab 中输入,所以它解决它有点麻烦。所以对于 tix current 1,我 juz 在脚本中输入它......然后在 matlab 我 juz 做一个“I = imread('picture')”.....来解决它?
    • 不,您必须将代码保存到 m 文件中。那么你需要调用这个函数。
    • 好的,我已经测试过了,非常棒!!所以当我想添加图片时?我是从哪里来的?
    【解决方案2】:

    这听起来像是作业,所以我只是给你一个提示:

    在 MATLAB 中,很容易将一个矩阵的内容精确地放入另一个矩阵的正确位置。查看矩阵索引的帮助,您应该能够解决它。

    【讨论】:

    • 由于我对 matlab 很陌生,所以我无法真正理解编码部分。我只能理解它的概念。
    【解决方案3】:

    我知道您想自己编写代码,但作为参考,您可以使用 PADARRAY 函数。示例:

    I = imread('coins.png');
    II = padarray(I,[5 5],0,'both');
    imshow(II)
    

    请注意,这也适用于多维矩阵(例如 RGB 图像)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      相关资源
      最近更新 更多