問題タブ [contour]
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.
math - 2D 暗黙的スカラー フィールドのアイソ ラインの描画
私は 2D で定義された暗黙的なスカラー フィールドを持っています。2D のすべてのポイントに対して、正確なスカラー値を計算させることができますが、その計算はやや複雑です。
そのサーフェスの等値線、たとえば「0」値の線を描きたいと思います。関数自体は連続していますが、「0」アイソラインは複数の連続インスタンスを持つことができ、それらすべてが接続されているとは限りません。
各ピクセルの値を計算することはオプションではありません。これには数秒程度の時間がかかりすぎるため、可能な限りリアルタイムで行う必要があります。
私が現在使用しているのは、一種の四分木と考えることができる空間の再帰的な分割です。空間の最初の非常に粗いサンプリングを行い、正から負の値への遷移を含む正方形を見つけたら、それを再帰的に 4 つの小さな正方形に分割し、再度チェックして、ピクセル レベルで停止します。四隅の四角形をサンプリングすることにより、正負の遷移が検出されます。これは、そうでない場合を除いて、かなりうまく機能します。エッジの小さな領域で発生し、正方形の角を横切らないトランジションのトランジション検出が失敗するため、描画されるアイソラインが切断されることがあります。
この設定で等値線描画を行うより良い方法はありますか?
opencv - OpenCv Blob/Contourラベリング
こんにちは私はしばらくの間これに取り組んできましたが、まだ良い解決策がありません。
私はフレームごとにビデオを読んでおり、背景減算を使用して'動きのある領域を特定し、cvFindContours()を使用して移動するオブジェクトの長方形の境界を取得しています。
プログラムが単純に保たれていると仮定すると、人間は2人しかいません。
これらのオブジェクトは、重なり合うことができる方法で移動し、回転し、特定の間隔で離れます。
この人間x2に正しくラベルを付けるにはどうすればよいですか。
cvFindContourは、ランダムな方法で境界を返すことができます。Frame1、Frame2、Frame3....FrameNの場合
最初に、長方形の境界重心を比較して、人間に正しくラベルを付けることができます。人間が重なり合って離れると、このアプローチは失敗します。
元のオブジェクトのピクセルカラーを追跡しようとしました(ただし、人間はかなり似ており、特定の領域は手、脚、髪の毛などの似たような色です)。したがって、十分ではありません。
私は次のような画像統計の使用を検討していました:
CountNonZero()、SumPixels()Mean()Mean_StdDev()MinMaxLoc()Norm()
2つのオブジェクトを一意に区別します。それがより良いアプローチだと思います。
algorithm - 多角形の輪郭の構築 (特に三角形分割)
三角形のみで形成され、穴を持つことができ、外部輪郭を凹/凸にすることができ、穴も凹/凸にすることができる2Dポリゴンの輪郭を構築するにはどうすればよいでしょうか。
私がここで読んでいることから、それはまさに三角測量の問題の逆のようです。この種の問題を扱う記事を知っていますか?
八分木/四分木はこれに関連していますか?
c++ - 等間隔のデータから等高線を生成する
私は現在、データ視覚化プロジェクトに取り組んでいます。私の目的は、グリッド データから等高線、つまり等値線を作成することです。データは、温度、気象データ、またはその他の環境パラメータのいずれかである可能性がありますが、条件のみが必要です。等間隔。インターネットで検索しましたが、グリッドから等高線を生成するための適切なアルゴリズム、疑似コード、またはソース コードが見つかりませんでした。グリッド データから等高線を生成するためのライブラリ、ソース コード、またはアルゴリズムを知っている人はいますか? あなたの提案が優れた実行時のパフォーマンスを持っているなら、それは良いことです.私はユーザーをそれほど待ちたくありません:)
編集:返信ありがとうございますが、アイソラインには交差してはならないなどの制約があるため、ベジエ曲線を生成するだけでは私の目標は達成されません。
algorithm - 3D ハイトマップの等高線を計算していますか?
ハイトマップ内の特定の高さで輪郭を表す線のリストを作成する関数または例を探しています。
例えば、
Heights は浮動小数点値の 512x512 配列で、HeightValue は輪郭を描画する高さです。高さには、その特定の高さの複数の行が含まれる場合があります (サドルやアイランド チェーンなど)。
これを生成するアルゴリズムをどこで入手できるか知っている人はいますか?
image-processing - 形状記述子
私はバイナリマスクである画像を持っています。マスクの黒いゾーンの輪郭を特徴付けたいです。両方のゾーン間の境界を検出する機能をいくつか見つけましたが、新しい画像としてのみですが、私が欲しいのはの説明です新しい画像ではありません。Javaアドバンスイメージングまたは別のライブラリに、マスクに適用してブラックゾーンの幾何学的形状の表現を取得できる機能はありますか? 表現は、形状のベクトル化、多角形近似、チェーンコードのいずれかです...私が見つけたのは、問題の理論的な解決策だけです。
python - 等高線/面積の中心を計算します
私は、単一のオブジェクトを色と輪郭で分離し、このオブジェクトのy位置を計算する画像処理チェーンに取り組んでいます。
OpenCVで輪郭または領域の中心を計算するにはどうすればよいですか?
Opencvリンク:
python - PythonでのOpencvソートシーケンス
Python OpenCVバインディングを使用して、画像の輪郭を見つけています。私はこのシーケンスをソートする可能性を探していることを知っています。
OpenCVから生成されたリンクリスト構造のため、リストの並べ替えの通常のPythonの方法はここでは適用されないようです。
Pythonで等高線をサイズ(Area / BoundingRectangle)で並べ替える良い方法を知っていますか?いくつかのサンプルコードを与えることは可能ですか?
python - バイナリ2DマトリックスのPythonコンター
バイナリNxM行列の形状の周りの凸包を計算したいと思います。凸包アルゴリズムは座標のリストを想定しているので、numpy.argwhere(im)を使用してすべての形状点の座標を取得します。ただし、これらのポイントのほとんどは凸包に寄与していません(形状の内側にあります)。凸包の計算時間は、入力として取得するポイントの数に少なくとも比例するため、事前に大量の不要なポイントをフィルタリングし、アウトラインにまたがるポイントのみを渡すというアイデアを考案しました。考え方は非常に単純で、バイナリNxM行列の各行について、最小インデックスと最大インデックスのみを取得します。したがって、たとえば:
次に、アウトラインを読む必要があります(タプルまたは5x2 numpy配列として、私は気にしません):
この形状の周りにきつい凸包(im)は、これらの点のサブセットである必要があります(アウトライン)。言い換えると、「somefunc()」が内側の点をフィルタリングするのに効率的である場合、凸包の計算にかかる時間を節約できます。
私は上記のトリックを実行するコードを持っていますが、何度も実行する必要があるので、誰かがより賢い(より速く読む)アプローチを持っていることを望んでいます。私が持っているコードは次のとおりです。
私が持っていたもう1つのアイデアは、Pythonのreduce()を使用することでした。そのため、座標のリストを1回だけ実行する必要がありました。しかし、私は良い還元機能を見つけるのに苦労しています。
どんな助けでも大歓迎です!
編集
im
その間に、私は直接からに行くより速い方法を見つけましたoutline
。少なくとも大きな画像では、これは大幅に高速です。外部の解決策が明らかにない場合、私はそれをこの質問の解決策と見なしています。
それでも、誰かがもっと速い方法を知っているなら、声を上げてください:)
graphics - 等高線グラフを生成するにはどうすればよいですか?
次のような等高線グラフを生成するにはどうすればよいですか 。
ポイントが通常のグリッド上にある場合は簡単ですが、私の例のようにそうでない場合はどうなるでしょうか? 各ピクセルの色を決定するためのかなり単純なアルゴリズムはありますか?