8

サイズ61x56の画像があり、画像をサイズ392x392にパディングしたいと思います。

使用しようとしていますpadarrayが、整数以外の値を取得したため、これを実行できません。誰かがこれで私を助けることができますか?どうもありがとう!やりたいことを下に添付しました。

K = imread('test.jpg');
K = rgb2gray(K);
[m n] = size(K);
p = 392;
q = 392;
K_pad = padarray(K, [(p-m)/2 (q-n)/2], 'replicate');
4

3 に答える 3

6

padarray命令を 2 つの呼び出しに分割できます。

K_pad = padarray(K, [floor((p-m)/2) floor((q-n)/2)], 'replicate','post');
K_pad = padarray(K_pad, [ceil((p-m)/2) ceil((q-n)/2)], 'replicate','pre');

ただし、画像の隅で何が起こっているかを確認して、目的の処理に問題がないかどうかを確認することをお勧めします。

于 2011-07-06T13:45:33.557 に答える
6

を使用せずにパディングする別の方法を次に示しますpadarray

imgSize=size(img); %#img is your image matrix
finalSize=392;   
padImg=zeros(finalSize);

padImg(finalSize/2+(1:imgSize(1))-floor(imgSize(1)/2),...
    finalSize/2+(1:imgSize(2))-floor(imgSize(2)/2))=img;
于 2011-07-06T13:47:54.020 に答える