MATLAB Answers

bwboundariesの色分けについて

2 views (last 30 days)
bwboundaries関数を用いた際に多くの色が用いられ、色分けされますが、プログラムの中に、色を指定するような部分は見られず、どのように色が出てきているのでしょうか。

  0 Comments

Sign in to comment.

Accepted Answer

Shunichi Kusano
Shunichi Kusano on 20 Nov 2019
bwboundaries関数自体は、境界の座標を取得するためのもので、お気づきのとおり色情報などは含みません。
色は表示の際にユーザ側で指定できます。
例えばご提示のURLの2番目の例ですと、境界を描画しているのはplot関数で、その中で色はcolors(cidx)で指定しています。境界の番号ごとにcolors=['b' 'g' 'r' 'c' 'm' 'y'];で指定した色を順繰りに割当てて表示させています。

  4 Comments

Show 1 older comment
Shunichi Kusano
Shunichi Kusano on 20 Nov 2019
色を固定する方法ですが、明示的に色指定をしなければ一色となります。何かお好みの色にしたい場合は、その色を指定すれば大丈夫です。例えば、上にも出したご提示のURLの2番目の例では、色を指定するところでcolors(cidx)で、順繰りに色を変えていますが、ここを'r'(赤の場合)とかに固定で書き換えればその色にできます。
線の長さは外周ですのでregionprops関数で計算することができます。詳しい使い方はドキュメントをご覧いただければと思いますが、プロパティに'Perimeter'をいれれば大丈夫です。
Nagae Ryoya
Nagae Ryoya on 21 Nov 2019
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 on 21 Nov 2019
具体的には何がうまくいきませんか?上のプログラムのどの画像(変数)にregionpropsを適用したいのですか?regionpropsではなんのパラメータを計算したいのですか?

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Products


Release

R2019b