0
ソース画像 どのように我々はポイント
I=imread('http://i.stack.imgur.com/qDhl7.jpg');
いくつかの前処理
nsc = bwareopen(~im2bw(I, .2),250);
i3=bwmorph(nsc,'thin');
のリストから、お互いに近いエンドポイントをペアにすることができ、我々は薄い画像
i4 = bwmorph(,'endpoints');
を取得
操作をモーフィングした後、我々は、エンドポイント
のリストを取得するには、今私は、ドアを閉じるために、エンドポイントのそれらのペアを選択する必要があります。次の画像に示すように。
私はこれらの画像を最初のものとマージすることができます。これを得るには
画像から壁に取り付けられたドア、窓、およびwc要素をクリーンアップすると、ルームが開かれるため、希望する接続コンポーネントをルームとして取得できません。私は部屋、窓、ドア、または他のシンボルのない壁だけを持っていたいので。 –
私はまた、部屋の境界を取得するためにbwdistと滝を試しましたが、しばらくして空の領域に望ましくない壁を作りました。 –
私はドアの図面が開いたドアを見ているのを見ましたが、部屋の色はドアを閉じたままにしなければならないので、接続されたリージョンは機能しません。矩形を囲むようにしてみることもできますが、それは長方形の部屋でしか機能しません。 Matlabで入力画像を見ると、ドアや窓はWCや壁などの図とは異なる色をしているようです。そこで、ドアと窓を色で抽出し、それらをタッチしてエンドポイントのペアを取得するエンドポイントとペアにすることができます。 –