0

画像 (グレー値の行列) をアップサンプリングする matlab 関数を作成しようとしています。それは実際には圧倒的に複雑なことではありませんが、私はまだそれを間違っています。私の目的は、倍率 2 でサイズを変更することです。最初は、拡大された画像を見たいだけです。ギャップをゼロで埋めたいので、2行/列ごとにゼロで埋めます。作業を終えた後、なぜピクセルの灰色の海しか見えないのか不思議に思います。私は自分の写真の中の少なくともいくつかのものを認識できると期待していた.

これが私の機能です。誰かが私の間違いを見ていますか?

function [upsampled] = do_my_upsampling(image)
    [X Y] = size(image);
    upsampled = zeros(X*2, Y*2);
    upsampled(1:2:end, 1:2:end) = image(1:1:end, 1:1:end);
end
4

2 に答える 2

4

あなたのコードは私にとっては問題なく動作します(image = rand(100);ただし、結果を達成するのは非常にMatlabの方法ではありません。

ピクセルを分散させたいだけなら、ダイレクト インデックスを作成してみませんか?

[nRows,nCols] = size(image);
upsampled = zeros(2*nRows,2*nCols);
upsampled(1:2:end,1:2:end) = image;
于 2012-04-22T22:06:25.840 に答える
-1

試すimshow(image,[])

または、画像が倍精度であるため、最初に uint8 に変換してから ie を表示します

imshow(uint8(image))
于 2013-10-07T04:16:52.920 に答える