0

フロア レイアウト (かなりシンプル、白い背景、黒いコンテンツ) と床に椅子のテンプレートがあります。検索する必要があるすべての方向 (上、下、左、右) はわかっていますが、入ってくるフロア テンプレートの縮尺はわかりません。

私は AForge と連携しており、レイアウトから椅子をコピーして正確な縮尺を知ると、床にあるすべての椅子を見つけることができます。それはまさに私が望むものを私に与えています(私は椅子の中心 x、y だけが必要です)。今後はこれを自動化したい。アップロードされている間取り図の正確な縮尺がわからない

Emgu.CV の例を試して見つけようとしましたが (SURFFeature サンプル プロジェクト)、椅子だけをテンプレートとして使用してもうまくいきませんでした。椅子自体はそれほど複雑ではないため、observedDescriptors (null) が見つからないようです。もっと複雑なテンプレートを試してみました (椅子と机、ただし、椅子と机の関係が一貫していないため、正常に機能しません)。結果は役に立たないように見えました。フロア プランのいくつかのランダムな場所を示していましたが、まったく正しくないように見えました。

スケールを決定する方法に関するアイデアはありますか?

4

2 に答える 2

1

間違った目盛りを使用すると、読み取り値が正確になりません。これにより、はかりではなくフロアスケールで作られたシリアルボックスで、パッケージの重量が誤って印刷される場合があります。これは、ビジネスの多様なニーズに対応するために、これらのスケールの精度が異なるためです。また、異なるキャリブレーションを使用することで、同じ製品をフロア スケールで測定した場合とカウント スケールで測定した場合に、重量に違いが生じる可能性があります。

于 2013-03-05T07:14:25.840 に答える
0

わかりました、私はこれを機能させることができました。私がやったことは、円の中に正方形を描き、その正方形の中に欲しいオブジェクトを配置することです

次に、次を使用します:Blob[] blobs = blobCounter.GetObjectsInformation( );ページ上のすべてのブロブを取得します。

ブロブをループしてすべての円と四角を探し、それらをそれぞれのリストに追加します

 if (shapeChecker.IsCircle(edgePoints, out center, out radius))
 {
     circs.Add(b);
 }
 else if (corners.Count == 3)
    tris.Add(b);
 else if (corners.Count == 4)
    boxes.Add(b);

各円をループし、各円についてすべての正方形をループし、ほぼ同じ中心点を持つ 2 つを探します。

内側のオブジェクトを取得するには、正方形の内側から画像のトリミングをコピーします (x、y にいくつか追加し、幅、高さからいくつか削除します)。これにより、正方形内の空白とオブジェクトが得られます

次に、オートクロップを使用して(ここから、回転/グレースケールする必要がなかったので変更しましたが)空白を切り取って、必要な画像だけを残しました!

  • 申し訳ありませんが、これにはサンプル画像がありません - まだ投稿するのに十分な担当者がいません
于 2013-02-08T16:44:51.607 に答える