主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

multithresh

大津法を使用する複数レベルのイメージしきい値

説明

= multithresh (一个は大津法を使用してイメージ一个に対して計算された1つのしきい値を返します。imquantizeの入力引数として使用すると,イメージを2レベルのイメージに変換できます。

= multithresh (一个Nは大津法を使用してN個のしきい値を含む1行N列のベクトルを返します。imquantizeの入力引数として使用すると,イメージ一个N + 1個の離散レベルを持つイメージに変換できます。

度规) = multithresh (___は,計算されたしきい値の効果の尺度である度规を返します。

すべて折りたたむ

イメージを読み取り,それを表示します。

我= imread (“coins.png”);imshow(我)

イメージのしきい値を1つ計算します。

水平= multithresh(我);

multithreshから返されたしきい値レベルを指定してimquantizeを使用してイメージを2つの領域にセグメント化します。

seg_I = imquantize(我、水平);图imshow (seg_I, [])

イメージを読み取り,それを表示します。

我= imread (“circlesBrightDark.png”);imshow (I)轴标题(原始图像的

2つのしきい値レベルを計算します。

打= multithresh(我,2);

imquantizeを使用してイメージを3つのレベルにセグメント化します。

seg_I = imquantize(我打);

label2rgbを使用してセグメント化したイメージをカラーイメージに変換し,それを表示します。

RGB = label2rgb (seg_I);图;imshow (RGB)轴标题(RGB图像分割的

トゥルーカラー(RGB)イメージを読み取り,それを表示します。

我= imread (“peppers.png”);imshow (I)轴标题(“RGB图像”);

RGBイメージ全体から7つのレベルのしきい値を生成します。

threshRGB = multithresh (7);

RGBイメージの平面ごとにしきい値を生成します。

threshForPlanes = 0(3、7);i = 1:3 threshForPlanes(我:)= multithresh(我(:,:,i), 7);结束

イメージ全体から計算された一連のしきい値を使用してイメージ全体を処理します。

value = [0 threshRGB(2:end) 255];quantRGB = imquantize(I, threshRGB, value);

指定された平面から計算されたしきい値ベクトルを使用して各RGB平面を個別に処理します。各RGB平面で生成されたしきい値ベクトルを使用してその平面を量子化します。

quantPlane = 0 (size(I));i = 1:3 value = [0 threshForPlanes(i,2:end) 255];quantPlane(:,:我)= imquantize(我(:,:,i), threshForPlanes(我:),值);结束quantPlane = uint8 (quantPlane);

ポスタリゼーションされた両方のイメージを表示して,2つのしきい値処理スキームの視覚的な違いを確認してください。

imshowpair (quantRGB quantPlane,“蒙太奇”)轴标题(“全RGB图像量化平面逐平面量化”

結果を比較するには,各出力イメージにおける一意のRGBピクセルベクトルの数を計算します。完全なRGBイメージスキームよりも平面ごとのしきい値処理スキームのほうが,生成されている色が23%多くなっています。

dim = size(quantRGB);qtrgbmx3 =重塑(qtrgb, prod(dim(1:2)), 3);quantPlanemx3 =重塑(quantPlane, prod(dim(1:2)), 3);colorsRGB =独特(quantRGBmx3,“行”);colorsPlane =独特(quantPlanemx3,“行”);disp ([“RGB图像中独特的颜色:”int2str(长度(colorsRGB))));
独特的颜色在RGB图像:188
disp ([“飞机上的独特色彩:”int2str(长度(colorsPlane))));
独特的色彩在飞机的图像:231

イメージを読み取ります。

我= imread (“circlesBrightDark.png”);

イメージ内の一意のグレースケール値をすべて検出します。

uniqLevels =独特的(我(:));disp (['唯一级别的数量= 'int2str(长度(uniqLevels))));
独特关卡的数量= 148

単調に増加するNの値に対する一連のしきい値を計算します。

Nvals = [1 2 4 8];i = 1:length(Nvals) [thresh, metric] = multithresh(i, Nvals(i));disp ([“N =”int2str(造船(我))' | metric = 'num2str(公制)]);结束
N = 1 | metric = 0.54767 N = 2 | metric = 0.98715 N = 4 | metric = 0.99648 N = 8 | metric = 0.99902

8つの値からなる一連のしきい値を適用してimquantizeで9レベルのセグメンテーションを行います。

seg_Neq8 = imquantize(我打);uniqLevels = unique(seg_Neq8(:))
uniqLevels =9×11 2 3 4 5 6 7 8 9

seg_Neq8multithreshへの入力として使用し,イメージのしきい値処理を行います。Nは8(このセグメント化されたイメージのレベル数より1小さい値)に等しくなります。multithresh度规値の1を返します。

[thresh, metric] = multithresh(seg_Neq8,8)
打=1×81.8784 2.7882 3.6667 4.5451 5.4549 6.3333 7.2118 8.1216
度量= 1

今度はNの値を1増やしてもう一度イメージをしきい値処理します。この値はイメージのレベル数と等しくなっています。イメージのレベル数が要求されたしきい値の数に対して少なすぎたため,入力が退化していることに注意してください。のそのため,multithreshは0度规値を返します。

[thresh, metric] = multithresh(seg_Neq8,9)
警告:没有解决方案存在,因为图像中的唯一级别的数量太少,无法找到9个阈值。返回任意选择的解。
打=1×91 2 3 4 5 6 7 8 9
度量= 0

入力引数

すべて折りたたむ

しきい値処理されるイメージ。任意の次元の数値配列として指定します。multithreshは配列全体の集計ヒストグラムに基づいてしきい値を検出します。multithreshはRGBイメージを3次元の数値配列と見なし,3つの色平面すべてを組み合わせたデータでしきい値を計算します。

multithreshは入力イメージ一个の範囲(最小((:))最大((:)))を,以降の計算で使うヒストグラムを計算するための制限として使用します。multithreshは計算でnanを無視します。は,ヒストグラムの最初のビンと最後のビンでそれぞれカウントされます。

一个内の一意の値の数がN個以下である縮退した入力には,大津法を使用した有効な解はありません。このような入力の場合,戻り値には一个のすべての固有の値と,場合によって任意に選ばれたその他の値がいくつか含まれます。

データ型:||int16|uint8|uint16

しきい値の数。正の整数として指定します。N > 2の場合,multithreshは大津基準の探索ベースの最適化を使用してしきい値を検出します。探索ベースの最適化では,局所的な最適化結果のみが保証されます。局所的最適値に収束する確率はNに応じて増加するため,比較的小さい値のN(通常はN < 10)を使用するのが適切です。Nの最大許容値は20です。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

出力引数

すべて折りたたむ

イメージを量子化するために使用される一連のしきい値。データ型がイメージ一个と同じである1行N列の数値ベクトルとして返されます。

これらのしきい値は入力イメージ一个と同じ範囲であり,範囲[0,1]に正規化したしきい値を返す関数graythreshとは異なります。

しきい値の効果の尺度。範囲[0,1]の数値として返されます。高い値は,大津法の客観的基準に基づいて入力イメージをN + 1個のクラスに分けるときに,しきい値の効果が大きいことを示します。一个内の異なる値の数がN個以下である縮退した入力の場合,度规は0となります。

データ型:

参照

[1] Otsu, N.,“灰度直方图中的阈值选择方法”,IEEE Transactions on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66。

拡張機能

R2012bで導入