問題タブ [connected-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - OpenCVでコーナーを接続して長方形を形成する
ラスタライズされた PDF の CText フィールドを PNG 形式に変換し、OpenCV で画像を分析して検出しようとしています。
これまでのところ、次のコードを使用して、比較的正確な一連のコーナーを作成できました。
このポイントのセットから、どのポイントが長方形の一部であるかを計算できるようにしたいと考えています。これには、各コーナー ポイントに対して、他の 3 つのコーナー ポイントが存在することを確認する必要があります。
- 同じ行 (ほぼ) にあるが、列が異なるポイント
- 同じ列 (ほぼ) であるが、行が異なるポイント
- 上の(1)の列と上の(2)の行を持つポイント
目標は、それらのコーナーポイントが長方形自体に属していない限り、内部に [有意な] 量のコーナーポイントを含まない長方形のセットを生成することです(たとえば、各内側の長方形の境界長方形の場合)。 )
OpenCVでこれを行う最も効率的な方法は何ですか?
c++ - opencvは、接続されたコンポーネントの周囲を見つけます
私はopencv 2.4.13を使用しています
ConnectedComponentWithStatsを使おうと思ったのですが、周囲が返ってこず、面積や幅などしか返ってこない... 等高線で面積を求める方法はありますが、反対ではありません(画像全体ではなく、1つのコンポーネントを意味します)。
メソッドarcLengthは、輪郭だけでなくコンポーネントのすべてのポイントを持っているため、うまく機能しません。
コンポーネントの各ピクセルを反復処理して、同じコンポーネントにない隣人がいるかどうかを確認することで、それを見つけるBFの方法があることを私は知っています。しかし、私はより安価な機能が欲しい. それ以外の場合は、メソッド findContours によって検出された輪郭にコンポーネントをリンクする方法を知っていれば、それは私にも適しています。
ありがとう
matlab - MATLAB: バイナリ イメージの対象領域の周囲を分離する: bwmorph の問題
bwconncomps で分離された接続コンポーネントを含むバイナリ イメージ (添付) があります。これらの各コンポーネントのアウトラインを特定しようとしていますが、塗りつぶされたオブジェクトを参照できる方法で (アウトラインをグレースケール イメージのマスクとして使用して値を取得し、それに応じて塗りつぶされた元の関心領域で操作を実行する値)
添付の画像で bwconncomps を実行すると、814 個のオブジェクトが識別されます。bwmorph(D,'remove'); を実行できます。そして、オブジェクトの輪郭/周囲を取得しますが、これで bwconncomps を実行すると、827 個のオブジェクトが取得されます (これらの余分なオブジェクトがどこから来ているのかわからないため、値に基づいて塗りつぶされたオブジェクトを参照する能力が台無しになります)アウトラインから引っ張る)。
基本的に、元のバイナリ イメージの bwconncomps に見られるのと同じ数の接続されたコンポーネントを残す bwmorph(D,'remove') のバージョンが必要です。これにより、元のバイナリのコンポーネント #30 をアウトラインと比較できます。 bwconncomps の同じ #30。
これが明確であることを願っています、何か提案はありますか?
ありがとう
scala - Spark アプリケーションでの計算時間を短縮する
500 万を超える要素を繰り返し実行する Spark アプリケーションがあります。アプリケーションをデータセット全体で実行するには 2 時間かかります。しかし、5,000 万を超える要素のデータセット全体に対してアプリケーションを実行する必要があります。
コードは正常に実行されますが、問題は、私のプログラムのほとんどがドライバーで実行され、エグゼキューターがアプリケーションの実行において果たす役割は最小限です。したがって、この反復アプリケーションの計算時間は非常に長くなります。
アプリケーションは、n-triples データセットからグラフを作成して、連結要素を見つけます。
問題は、executor がタスクを受信しておらず、最初の for ループが 500 万個の要素すべてが完了するまで実行されるため、この部分に約 90% の時間がかかるため、主にこの部分を最適化する必要があることです。
作業をドライバーからエグゼキューターに転送する変更を提案し、それによってこのコードをスケーラブルにして、計算時間を大幅に短縮します。
c++ - CV C++ connectedComponentsWithStats と SimpleBlobDetector を開く
simpleblobdetectorで見つけた一連のブロブの領域を見つけたいのですが、それを行う方法はconnectedComponentsWithStatsを使用することです。この関数の使い方がよくわかりません。誰かが私に例またはリンクを教えてください。
これまでの私のコードは次のとおりです。
scala - Graphxは頂点IDから頂点ラベルを取得します
Graphxに次のグラフがあります
このグラフに連結成分アルゴリズムを適用しました。その出力は次のとおりです:-
出力が(vertexID,vertexID) => (vertexLabel,vertexLabel)から変換されるように、ccGraph で (vertexID,vertexID) の頂点ラベル/頂点名を見つける方法が見つかりません。
私は次のアプローチを試みましたが失敗しました
image - 一部を保持しながら、画像から接続されたコンポーネントを削除する方法
labelledImage
fromという画像に 5 つの接続されたコンポーネント (ラベル付きオブジェクト) があるとしbwlabel
ます。labelledImage
2、3、5のラベルが付いたオブジェクトを削除しながら、1 と 4 のラベルが付いたオブジェクトのみが表示されるように操作するにはどうすればよいでしょうか。 1 と 4 のみ表示されます。
以下のコード行を使用して、単一の接続されたコンポーネントを保持する方法を知っています。ただし、複数のラベル付き領域に対してこれを行う方法がわかりません。
動作します。
うまくいきません。
python - 従属グループの作業
次の関数を使用して、いくつかのテスト データを生成できます。
これは私のテストデータです。
レターが別のレターとリストを共有している場合、それはそのレターに依存しており、そのレターのいずれかが他の依存関係にあります。例えば
x
依存している['a','c','d','g','f','i','h','k','l','q','p','s','u','w','v','y', 'x','z']
これらの依存関係も双方向です。k
を含むすべてのものに依存しています。x
しかし、またはx
に依存していません。これらは別々のグループに配置できます。b
t
リストをできるだけ多くの非依存グループに分割する必要があります。
各グループは、グループが依存するすべての文字のセットになります。非依存文字は1セットとなります。
上記の出力例は次のとおりです。
これを行う関数を作成しようとしていますが、すべてを正しくグループ化する正しい方法がわかりません。