2016-07-19 9 views
-2

width、height、およびcolorChannelにあるピクセル値を減らしてイメージのサイズを小さくしようとしています。私はそれを0(黒を意味する)にしようとすると、ファイルサイズの値が増加します。ピクセルを小さくしてイメージのサイズを小さくする方法

imresizeを使用してサイズを減らす方法を提案できます。

+1

'imresize' ....? Changinの値はメモリサイズを変更しません....同じメモリに値123212321と値0を格納します。 –

+1

非常にあいまいな用語を使用しています。行と列の数のようにサイズ?あなたのMATLABワークスペースのメモリ内のオブジェクトのサイズ?特定の形式で保存すると、ディスク上のファイルサイズは?ピクセルの強度またはピクセル数を減らしますか? 「width heightとcolorChannelでの* pixel *値」とは何ですか?これは意味がありません。 –

+0

このユーザーはすでに、閉鎖され、下降されたあいまいな用語で類似のものを尋ねました。 http://stackoverflow.com/questions/38202047/total-number-of-pixels-in-an-image –

答えて

0

あなたはsizeが行列の行と列の数を指し、品質パラメータ(以下の例では75に等しい)MATLABで

sharp('input.jpg') 
    .resize(300) 
    .quality(75) 
    .toFile('result.jpg', function(err, info) { 
    if(err) console.error(err); 
    console.log(info); 
    }); 
+0

質問にはmatlabタグがあり、あなたの答えはjavascriptのように見えます:) –

0

をdecrasingことによって画像のサイズを小さくすることができ(または2つのより高次元のために、それは各次元で長さだ。 例えば

>> A = [0.1,0.2,0.3,0.4,0.5;0.6,0.7,0.8,0.9,1]; 
>> size(A) 
ans = 
    2  5 
>> whos A 
    Name  Size   Bytes Class  Attributes 

    A   2x5    80 double 

Aは、であり、メモリに80のバイトを要しますそれはタイプdoubleの配列であるためです。 Aの画像として使用する場合には、そのメモリフットプリントを減らす方法は、符号なし8ビット整数型に変換することで、すなわちuint8の場合:

>> A = im2uint8(A) 
A = 
    26 51 77 102 128 
    153 179 204 230 255 
>> whos A 
    Name  Size   Bytes Class Attributes 

    A   2x5    10 uint8    

しかし、なぜあなたがしたい私は見当がつかないあなたのMATLABワークスペースのメモリフットプリントについて気にしてください。あなたは言おうとすることができるように

は、それはあなたが小さいサイズのが、解像度を犠牲にすることなくあるファイルを取得したいということである私には聞こえます。しかし、そうであれば、私たちが話している出力ファイルの種類を指定する必要があります。それはちょうどmatlab .matファイルの場合は、上記のとおりです。 .jpgまたは.pngなどに変換しようとしている場合は、エクスポート機能に渡すオプションの種類に応じて圧縮の品質などを決定します。

さらに質問を明確にしてください実際に役に立つヘルプが必要です。

+0

これは問題ではありませんでしたが、順番に可能な限り少ない情報を失うためには、im2uint8関数の前にヒストグラム等化を適用すると便利です。 – obchardon

関連する問題