2016-06-21 7 views
0

私の質問は、matlabの '変形'機能に関するものです。自分自身と研究者の中には、研究目的のために画像用のバイトカウンタ(tiff、.JPEGなど)を作成していました。その後、結果を別の匿名の当事者に送ってレビューしました。これの結末は、私たちが作り出したカウンタが間違っていて、明らかにmatlab関数の形が使われているはずだと言われていました。推奨されるコードは以下の通りです。私が理解していないことは、この機能がイメージに対して何をするのかです!私はコードを実行したが、...コードが画像に対して何をしているのか、出力データが何かを理解していない。matlabと画像の変形機能

誰かが私のためにこれを明確にし、私にダミーの説明を与えたら、私はとても感謝しています!

clc, clear, close all; 

IM = imread('Images for Dataset 2/DS2-11.jpg'); 

hist(reshape(IM,1,[]),0:255); 

答えて

0

あなたのコードでは、これは基本的に0使用して、あなたのイメージから1Dベクトル、及び計算することのヒストグラムを作る

IM=IM(:); 

hist(IM,0:255); %note that now histogram is recommended, instead of hist 

と同等です:255ビンを。コードreshape(IM,1,[])は、形容詞IMを意味するので、最初の次元はサイズ1で、2番目の文字は「あなたがそれに合う必要があるもの([])」です。

例:size(IM)は200x500です。 reshape関数は、1x100000のベクトルを返します。

私が示したバージョンはより明確なコードだと思います。


NOTES

  1. あなたのイメージは、それはこのように、RGBチャンネル
  2. を持っていない、グレースケール画像であるuint8の種類
  3. です:そのヒストグラムは場合にのみ、動作します

画像が2倍の場合、データは[0-1]の範囲になりますので、ビニング0:255は実際には機能しません。

画像がRGBの場合は、3つのカラーチャンネルを「一緒に」カウントするため、研究結果が歪む可能性があります。

+0

ありがとうございます、これは意味をなさないようになり始めています。もし私ができるなら、1つのフォローアップの質問:ビンの各値は何を表していますか? – Rbicknel

+0

@Rbicknel喜んでそれは助けた。それを賛美歌として受け入れることを検討してください。また、ヒストグラムが何かを読むのもいいかもしれません。 https://en.wikipedia.org/wiki/ヒストグラム –

関連する問題