このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
dice
イメージ セグメンテーションのための Sørensen-Dice 類似度係数
説明
は、バイナリ イメージ similarity
= dice(BW1
,BW2
)BW1
と BW2
との間の Sørensen-Dice 類似度係数を計算します。
は、ラベル イメージ similarity
= dice(L1
,L2
)L1
と L2
の各ラベルの Dice 指数を計算します。
は、categorical イメージ similarity
= dice(C1
,C2
)C1
と C2
の各カテゴリの Dice 指数を計算します。
例
バイナリ セグメンテーションのための Dice 類似度係数の計算
セグメント化するオブジェクトを含むイメージを読み取ります。イメージをグレースケールに変換し、結果を表示します。
A = imread('hands1.jpg'); I = im2gray(A); figure imshow(I) title('Original Image')
動的輪郭 (snakes) を使用して手をセグメント化します。
mask = false(size(I)); mask(25:end-25,25:end-25) = true; BW = activecontour(I, mask, 300);
グラウンド トゥルース セグメンテーションを読み取ります。
BW_groundTruth = imread('hands1-mask.png');
動的輪郭セグメンテーションの Dice 指数をグラウンド トゥルースと比較して計算します。
similarity = dice(BW, BW_groundTruth);
マスクを重ねて表示します。色はマスクの違いを示します。
figure
imshowpair(BW, BW_groundTruth)
title(['Dice Index = ' num2str(similarity)])
多領域セグメンテーションのための Dice 類似度係数の計算
この例では、イメージを複数の領域にセグメント化する方法を説明します。その後、各領域の Dice 類似度係数を計算します。
セグメント化する複数の領域を含むイメージを読み取ります。
RGB = imread('yellowlily.jpg');
典型的な色の特性を区別する 3 つの領域用にスクリブルを作成します。最初の領域には黄色の花が分類されます。2 番目の領域には、緑色の茎および葉が分類されます。最後の領域には、茶色の土が2 つのイメージのパッチに分かれて分類されます。領域は、要素が ROI の左上隅の x 座標と y 座標、ROI の幅、および ROI の高さを示す 4 要素ベクトルで指定されます。
region1 = [350 700 425 120]; % [x y w h] format
BW1 = false(size(RGB,1),size(RGB,2));
BW1(region1(2):region1(2)+region1(4),region1(1):region1(1)+region1(3)) = true;
region2 = [800 1124 120 230];
BW2 = false(size(RGB,1),size(RGB,2));
BW2(region2(2):region2(2)+region2(4),region2(1):region2(1)+region2(3)) = true;
region3 = [20 1320 480 200; 1010 290 180 240];
BW3 = false(size(RGB,1),size(RGB,2));
BW3(region3(1,2):region3(1,2)+region3(1,4),region3(1,1):region3(1,1)+region3(1,3)) = true;
BW3(region3(2,2):region3(2,2)+region3(2,4),region3(2,1):region3(2,1)+region3(2,3)) = true;
イメージの上にシード領域を表示します。
imshow(RGB) hold on visboundaries(BW1,'Color','r'); visboundaries(BW2,'Color','g'); visboundaries(BW3,'Color','b'); title('Seed Regions')
測地線距離ベースの色のセグメンテーションを使用して、イメージを 3 領域にセグメント化します。
L = imseggeodesic(RGB,BW1,BW2,BW3,'AdaptiveChannelWeighting',true);
イメージのグラウンド トゥルース セグメンテーションを読み込みます。
L_groundTruth = double(imread('yellowlily-segmented.png'));
セグメンテーションの結果をグラウンド トゥルースと視覚的に比較します。
figure
montage({label2rgb(L),label2rgb(L_groundTruth)})
title('Comparison of Segmentation Results (Left) and Ground Truth (Right)')
セグメント化された領域ごとに Dice 類似度係数を計算します。Dice 類似度係数は 2 番目の領域で顕著に小さくなります。この結果は、イメージの右下隅の土を葉として誤って分類するセグメンテーション結果の視覚的な比較と一致しています。
similarity = dice(L, L_groundTruth)
similarity = 3×1
0.9396
0.7247
0.9139
入力引数
BW1
— 最初のバイナリ イメージ
logical 配列
最初のバイナリ イメージ。任意の次元の logical 配列として指定します。
データ型: logical
BW2
— 2 番目のバイナリ イメージ
logical 配列
2 番目のバイナリ イメージ。BW1
と同じサイズの logical 配列として指定します。
データ型: logical
L1
— 最初のラベル イメージ
非負の整数から成る配列
最初のラベル イメージ。非負の整数から成る任意の次元の配列として指定します。
データ型: double
L2
— 2 番目のラベル イメージ
非負の整数から成る配列
2 番目のラベル イメージ。L1
と同じサイズの非負の整数から成る配列として指定します。
データ型: double
C1
— 最初の categorical イメージ
categorical
配列
最初の categorical イメージ。任意の次元の categorical
配列として指定します。
データ型: category
C2
— 2 番目の categorical イメージ
categorical
配列
2 番目の categorical イメージ。C1
と同じサイズの categorical
配列として指定します。
データ型: category
出力引数
similarity
— Dice 類似度係数
数値スカラー | 数値ベクトル
Dice 類似度係数。範囲 [0, 1] の数値を持つ数値スカラーまたは数値ベクトルとして返されます。similarity
が 1 の場合、2 つのイメージのセグメンテーションが完全一致であることを意味します。入力配列に応じて、次のようになります。
バイナリ イメージ。
similarity
はスカラーです。ラベル イメージ。
similarity
はベクトルで、最初の係数はラベル 1 の Dice 指数、2 番目の係数はラベル 2 の Dice 指数となり、以下同様です。categorical イメージ。
similarity
はベクトルで、最初の係数は最初のカテゴリの Dice 指数、2 番目の係数は 2 番目のカテゴリの Dice 指数となり、以下同様です。
データ型: double
詳細
Dice 類似度係数
2 つの集合 A および B の Dice 類似度係数は次のように表されます。
dice
(A,B) = 2 * | intersection
(A,B) | / ( | A | + | B | )
ここで |A| は、集合 A の基数を表します。Dice 指数は、真陽性 (TP)、偽陽性 (FP)、および偽陰性 (FN) に関して次のように表すこともできます。
dice
(A,B) = 2 * TP / ( 2 * TP + FP + FN)
Dice 指数は、次の式のように Jaccard 指数に関連します。
dice
(A,B) = 2 * jaccard
(A,B) / (1 + jaccard
(A,B) )
バージョン履歴
R2017b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)