2014-03-11 4 views
1

У меня есть маленькое изображение размером 89x56px и является RGB.Добавление прокладки к изображению - Matlab

Я пытаюсь добавить дополнение к изображению, пока оба (x, y) не будут больше 64 пикселей.

Я попытался это, прочитав эту question: но не повезло:

img = subImage{1};    %small image 89x56 
    new(size(subImage{1},1),64)=0; %zero matrix for padding 
    size(new); 
    merged = img;     %also tried adding img to new 
    imshow(merged) 

В идеале я хотел бы даже дополняя каждую сторону изображения. например, 64 - 56 = 8; так что 4 столбца по 0 с каждой стороны (или просто 8 на конце, если это слишком сложно).

Любая помощь будет оценена. Заранее спасибо.

+0

Если не выполнено условие быть больше или равна 64px? – Divakar

+0

Да, должно. Хорошо заметили: D Спасибо за публикацию. – Reanimation

ответ

6

Поскольку у вас есть imshow, вы должны иметь padarray тоже:

pad = [64 64 0] - size(img); 
pad(pad<0) = 0; 
merged = padarray(img, floor(pad./2)); 
+0

Ах круто. Я буквально только что прочитал про падарри. Очень удобная функция. Спасибо за отличный ответ: D – Reanimation

0

Код

limit = 64; %%// Padding limit 

[sz1 sz2 C] = size(img); 
ad1 = round((limit - min([sz1 sz2]))/2); 
img1 = uint8(zeros(sz1+2*ad1,sz2+2*ad1,3)); 
img1(ad1:ad1+sz1-1,ad1:ad1+sz2-1,:) = img; 

figure,imshow(img1) 

код предполагает, что вы хотите, чтобы колодки одинаково слева и справа и сверху и снизу.

+0

Это приятно знать. Особенно для равномерного заполнения. Спасибо за сообщение (: – Reanimation

Смежные вопросы