bwboundariesの色分けについて

21 ビュー (過去 30 日間)
Nagae Ryoya
Nagae Ryoya 2019 年 11 月 20 日
コメント済み: Shunichi Kusano 2019 年 11 月 21 日
bwboundaries関数を用いた際に多くの色が用いられ、色分けされますが、プログラムの中に、色を指定するような部分は見られず、どのように色が出てきているのでしょうか。

採用された回答

Shunichi Kusano
Shunichi Kusano 2019 年 11 月 20 日
bwboundaries関数自体は、境界の座標を取得するためのもので、お気づきのとおり色情報などは含みません。
色は表示の際にユーザ側で指定できます。
例えばご提示のURLの2番目の例ですと、境界を描画しているのはplot関数で、その中で色はcolors(cidx)で指定しています。境界の番号ごとにcolors=['b' 'g' 'r' 'c' 'm' 'y'];で指定した色を順繰りに割当てて表示させています。
  4 件のコメント
Nagae Ryoya
Nagae Ryoya 2019 年 11 月 21 日
regionprops関数を使用したいのですが、プログラムがうまく行きません。
regionprops関数の例が載っているページを確認しましたが、自分のプログラムと合わせることができません。
プログラムは以下の通りです。
%%画像入力
kaki_img=imread('box_dark.jpg'); %画像読み込み
%kakiimg=imcrop(kakiimg)
figure(2)
imshow(kaki_img,'Border','tight','InitialMagnification','fit');
%%画像全体のセグメンテーション
kaki_red=kaki_img(:,:,1); %画像のセグメンテーション(赤要素検出)
figure(3)
imshow(kaki_red,'Border','tight','InitialMagnification','fit');
%%画像の二値化
kaki_th=kaki_red>180;
figure(4)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
%%二値化画像の穴埋め
kaki_th=imfill(kaki_th,'holes');
figure(5)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
%%二値化画像のクリーンナップ(周囲の白を除去)
cc1=bwconncomp(kaki_th);
main1=regionprops(cc1,'Area');
A=[main1. Area];
[~,biggest]=max(A);
kaki_th(labelmatrix(cc1)~=biggest)=0; %最大の塊となっている1の要素以外の1の要素を0にする
figure(6)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
%%牡蠣の二値化画像の外周に色付け
BW=imbinarize(I);
%%Detec boundarries
B=bwboundaries(kaki_th,'noholes');
figure(7)
imshow(BW)
hold on
for kk=1:numel(B)
%%'c'で色を固定
plot(B{kk}(:,2),B{kk}(:,1),'c','LineWidth',2)
end
よろしくお願いします。
Shunichi Kusano
Shunichi Kusano 2019 年 11 月 21 日
具体的には何がうまくいきませんか?上のプログラムのどの画像(変数)にregionpropsを適用したいのですか?regionpropsではなんのパラメータを計算したいのですか?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeイメージのセグメンテーションと解析 についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!