4

グレースケール画像をバイナリ画像に変換するR関数はありますか? RGBからグレーに変換するものがありますが、グレーをバイナリに変換したいです。

4

3 に答える 3

3

これは、しきい値処理または 2 値化と呼ばれます。私の経験で最も堅牢なのは適応しきい値です。これはメソッドEBImageとして実装されていますthresh

x = readImage(system.file('images', 'nuclei.tif', package='EBImage'))
if (インタラクティブ()) ディスプレイ(x)
y = スレッシュ(x, 10, 10, 0.05)
if (インタラクティブ()) ディスプレイ(y)
于 2013-05-05T13:16:11.607 に答える
2

データがどのクラスまたは「typeof」であるかを言わなかったので、簡単なケースで答えを提供します。画像が整数の配列であるとします。これらの整数の範囲は 0 から、たとえば 9 ビットのグレースケール イメージの場合は 512 です。バイナリ イメージの 0 対 1 のカットオフ ポイントを決定する必要があります。それで

bin_image <- round(grey_image/max(grey_image),0)

するべきです。データの範囲が 0 から 1 の場合は、同様の操作を行いますが、丸めパラメーターを調整します。編集: おっと、カットオフ レベルの選択を省略しました。ハーフマックスでカットする場所、高くカットする場所、低くカットmax(grey_image)するK*max(grey_image)場所に置き換えます。K = 1K>1K<1

于 2012-04-23T11:37:20.103 に答える
1

EBImage Bioconductor パッケージは、 Rで画像解析を実行するための便利なツールです。パッケージの Vignette からの基本的な例:

lena = readImage(system.file("images", "lena.gif", package="EBImage"))
display(lena>0.5)
于 2012-04-23T14:09:17.470 に答える