メインコンテンツ

cc2bw

連結要素からバイナリ イメージへの変換

R2024a 以降

    説明

    BW = cc2bw(CC) は、CC 内の連結要素 (オブジェクト) からバイナリ イメージを作成します。

    BW = cc2bw(CC,ObjectsToKeep=objectsToKeep) は、objectsToKeep で指定された連結要素のサブセットからバイナリ イメージを作成します。

    すべて折りたたむ

    イメージを読み取って表示します。

    I = imread("blobs.png");
    imshow(I)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    連結要素の構造体を作成します。

    CC = bwconncomp(I);

    構造体をフィルター処理し、丸いオブジェクトを保持します。フィルター処理されたイメージを表示します。

    CC = bwpropfilt(CC,"Circularity",[0.7 1]);
    imshow(cc2bw(CC))

    Figure contains an axes object. The hidden axes object contains an object of type image.

    構造体を再度フィルター処理し、大きいオブジェクトを保持します。フィルター処理されたイメージを表示します。

    CC = bwpropfilt(CC,"Area",[20 Inf]);
    imshow(cc2bw(CC))

    Figure contains an axes object. The hidden axes object contains an object of type image.

    バイナリ イメージを読み取り、連結要素を検出します。

    BW = imread("text.png");
    CC = bwconncomp(BW);

    各連結要素の面積を測定し、結果を table として返します。

    p = regionprops("table",CC,"Area");

    2 番目から 10 番目に大きい連結要素のみを含むバイナリ イメージを作成します。結果を表示します。

    [~,idx] = sort(p.Area,"descend");
    BWfilt = cc2bw(CC,ObjectsToKeep=idx(2:10));
    imshow(BWfilt)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    米粒のグレースケール イメージを読み取った後、そのイメージをにバイナリ イメージに変換します。

    I = imread("rice.png");
    BW = imbinarize(I);
    imshow(BW)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    各領域の面積と境界ボックスを測定します。

    CC = bwconncomp(BW); 
    stats = regionprops("table",CC,"Area","BoundingBox");

    次の条件が成り立つ領域を選択します。

    • 面積が 50 ピクセルより大きい

    • 境界ボックスが、幅 15 ピクセル未満、高さ 20 ピクセル以上である。

    area = stats.Area;
    bbox = stats.BoundingBox;
    selection = (area > 50) & (bbox(:,3) < 15) & (bbox(:,4) >= 20);
    BW2 = cc2bw(CC,ObjectsToKeep=selection);

    フィルター処理されたイメージを表示します。

    imshow(BW2)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    入力引数

    すべて折りたたむ

    連結要素 (オブジェクト)。4 つのフィールドをもつ構造体として指定します。

    フィールド説明
    Connectivity連結要素の連結性
    ImageSizeバイナリ イメージのサイズ
    NumObjectsバイナリ イメージ内の連結要素の数。
    PixelIdxList1 行 NumObjects 列の cell 配列。ここで、cell 配列の k 番目の要素は k 番目のオブジェクトのピクセルの線形インデックスを含むベクトルです。

    保持するオブジェクト。次のいずれかの値として指定します。

    • 正の整数、または正の整数のベクトル — objectsToKeep に含まれるインデックスをもつオブジェクトを保持します。objectsToKeep の長さは CC.NumObjects 以下になります。

    • logical ベクトル — objectsToKeep 内の対応する要素が true であるオブジェクトを保持します。objectsToKeep の長さは CC.NumObjects と等しくなければなりません。

    出力引数

    すべて折りたたむ

    バイナリ イメージ。CC.ImageSize と同じサイズの logical 配列として返されます。

    データ型: logical

    拡張機能

    すべて展開する

    バージョン履歴

    R2024a で導入

    すべて展開する