1

平均強度の10%の静的しきい値を使用してMATLABで画像を2値化する必要があります。を使用して平均強度を見つけます。これは、画像の1つでmean2(Image)平均を返します。15.10したがって、私の平均しきい値は1.51です。im2bw(image,level)0から1の間のしきい値を取ります。この場合、MATLABで画像を2値化するにはどうすればよいですか?

4

4 に答える 4

3

1)最初に、を使用して元の画像をダブルフォーマットに変換できますim2double()。その場合、すべてのピクセル値は0から1の間になります。次に、を使用できますim2bw(im,level)

2)画像をdoubleに変換したくない場合は、この方法で変換できます。しきい値が平均値の10%であるとしましょう、たとえばthreshold = 1.51。あなたが持っている画像がであるとしましょうim。次にim(im<threshold) = 0; im(im>=threshold)=1。これらの2つの操作の後、imはバイナリイメージになります。

于 2013-03-26T20:07:27.603 に答える
2

単純な論理ステートメントで画像を2値化できます。完全を期すために、しきい値の決定も追加しました。

threshold = mean(Image(:));

binaryMask = Image > 0.1 * threshold;
于 2013-03-26T20:04:17.860 に答える
2

使用する場合は、画像の平均強度と最大強度の結果を正規化する必要がありますim2bw(上記の他のソリューションはもちろん正しく機能します)。

ImageN=Image./max(Image(:))
t = mean2(ImageN) * 0.1 % Find your threshold value 
im2bw(Image,t)
于 2013-03-26T20:13:25.553 に答える
1

画像がマトリックスimgであるとすると、次のことができます。

t = mean2(img) * 0.1 % Find your threshold value
img(img < t) = 0 % Set everything below the treshold value to 0
img(img ̃= 0) = 1 % Set the rest to 1
于 2013-03-26T20:09:30.167 に答える