如何在MATLAB中将图像添加到帧中?

时间:2014-07-01 22:23:08

标签: matlab image-processing

我有以下问题规范:

  

创建一个带有黑色(0)边框的(400 x 400)位图白色(255)图像,以模拟"图片框"。框架应距离所有边缘10个单位。将此图像另存为" ImageFrame.bmp"。现在,插入" Parrot.png"进入"画框"。找到鹦鹉图片的中心,以及框架的中心并放置鹦鹉。

我制作了相框,但我无法弄清楚如何将鹦鹉添加到“相框”中。帮助真的很感激!鹦鹉图片是200 X 150。

以下是我试图解决此问题的代码

ImageParrot = imread('Parrot.png','png');

ImageBlank = uint8(zeros(200,150))
ImageBlank = 255 * uint8(ones(400,400))

imshow(ImageBlank)

ImageFrame = ImageBlank
ImageFrame(10:390,10) = 0;
ImageFrame(10,10:390) = 0;
ImageFrame(10:390,390) = 0;
ImageFrame(390,10:390) = 0;

imshow(ImageFrame)

imwrite(ImageFrame,'ImageFrame.bmp')

imshow(ImageParrot)
ImageParrotLarge = imresize(ImageParrot,2)
imshow(ImageParrotLarge)

ImageParrotRotate = imrotate(ImageParrot,90)
ImageParrotRotate = imrotate(ImageParrot,45)
imshow(ImageParrotRotate)

ImageParrotStretched = imagesc(400,400,ImageParrot)


ImageNewParrot = 255 * uint8(ones(400,400));
ImageNewParrot(40:end,40:end) = ImageParrot

imadd(ImageFrame,ImageParrot)

1 个答案:

答案 0 :(得分:0)

您已经回答了这个问题的前两部分:

  1. 创建一个完全白色的图像
  2. 图像周围有黑色10像素的边框
  3. 假设图像是灰度,您可以将图像插入帧的中心,如下所示:

    % // Get the centre of the picture frame
    [rowsFrame, colsFrame] = size(ImageFrame);
    picFrameCenRow = rowsFrame / 2;
    picFrameCenCol = colsFrame / 2;
    
    % // Get dimensions of parrot image
    [rowsParrot, colsParrot] = size(ImageParrot);
    
    % // Place the parrot in the centre
    ImageFrame(picFrameCenRow-(rowsParrot/2) : picFrameCenRow+(rowsParrot/2)-1, ...
               picFrameCenCol-(colsParrot/2) : picFrameCenCol+(colsParrot/2)-1) = ImageParrot;    
    

    这应该将您的鹦鹉图像放在ImageFrame的中心,存储在ImageFrame中。