問題タブ [labeling]

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.

0 投票する
2 に答える
1737 参照

algorithm - 三角形メッシュのエッジにラベルを付けるためのアルゴリズム

序章

より大きなプログラム(ボリュームグラフィックスのレンダリングに関連する)の​​一部として、任意の(ただし有限の)三角形の2Dメッシュに特定の方法でラベルを付ける必要がある、小さいがトリッキーなサブ問題があります。少し前に、その時点で使用していたテストメッシュに十分なソリューション(以下を参照)を作成しましたが、考えられるすべてのメッシュに対してこのアプローチがうまく機能しない可能性があることに気付きました。今、私はついに現在のソリューションがまったくうまく機能しないメッシュに遭遇しました-そして私はまったく異なる種類のアプローチを考え出すべきであるように見えます。残念ながら、自分の考え方をリセットすることはできないようです。そのため、ここで質問したいと思いました。

問題

下の写真を考えてみましょう。(色は問題の一部ではありません。視覚化を改善(?)するために色を追加しただけです。また、エッジ幅の変化はまったく関係のないアーティファクトです。)

すべての三角形(たとえば、オレンジ色のABCと緑色のABD)について、3つのエッジのそれぞれに、「0」または「1」などの2つのラベルのいずれかを付ける必要があります。要件は2つだけです。

  1. 三角形のすべてのエッジに同じラベルを付けることができるわけではありません。つまり、三角形ごとに2つの「0」と1つの「1」、または2つの「1」と1つの「0」が必要です。
  2. エッジが2つの三角形で共有されている場合は、両方で同じラベルを付ける必要があります。つまり、画像のエッジABが三角形ABCの​​場合は「0」とラベル付けされている場合、ABDの場合も「0」とラベル付けされている必要があります。

メッシュは本物の2Dメッシュであり、有限です。つまり、メッシュはラップせず、明確に定義された外側の境界があります。明らかに、境界線では要件を満たすのは非常に簡単ですが、内部ではさらに難しくなります。

直感的には、証明できなくても、少なくとも1つの解決策が常に存在する必要があるように見えます。(通常、いくつかあります-それらのいずれか1つで十分です。)

現在のソリューション

私の現在の解決策は本当にブルートフォースの解決策です(完全を期すためにここで提供されています-このセクションをスキップしてください):

  • 三角形の4つのセットを維持します-ラベル付けされる残りのエッジの可能なカウント(0..3)ごとに1つ。最初は、すべての三角形がセット内にあり、3つのエッジにラベルが付けられたままになっています。
  • ラベルのないエッジを持つ三角形がある限り:
    まだ三角形が残っている、割り当てられていないエッジのゼロ以外の最小数を見つけます。言い換えれば、いつでも、ラベル付けが部分的に完了している三角形の数を最小限に抑えるように努めています。残りのエッジの数は1から3の間です。次に、この特定の数のエッジが割り当てられるように、そのような三角形を1つ選択します。この三角形に対して、次のようにします。
    • 残りのエッジのラベル付けが、他の三角形のラベル付けによってすでに適用されているかどうかを確認します。その場合は、上記の要件2で示されているようにラベルを割り当てます。
    • これにより行き止まりになる場合(つまり、現在の三角形で要件#1を満たせなくなる場合)、プロセス全体を最初からやり直します。
    • 次のように残りのエッジを割り当てます。
      • これまでにラベル付けされたエッジがない場合は、最初のエッジをランダムに割り当てます。
      • 1つのエッジがすでに割り当てられている場合は、反対のラベルが付けられるように2番目のエッジを割り当てます。
      • 2つのエッジが割り当てられた場合:同じラベルが付いている場合は、3番目のエッジに反対のラベルを割り当てます(明らかに)。2つのラベルが異なる場合は、3番目のラベルをランダムに割り当てます。
    • 未割り当てのエッジの数が異なる場合は、三角形のセットを更新します。
  • 私たちがここに着いたら、解決策があります-やったー!

通常、このアプローチは数回の反復で解決策を見つけますが、最近、アルゴリズムが1〜2千回の再試行後にのみ終了する傾向があるメッシュに遭遇しました...これは明らかに、終了しないメッシュが存在する可能性があることを示唆しています。


今、私は常に解決策を見つけることが保証されている決定論的アルゴリズムが欲しいです。メッシュはそれほど大きくなく、ラベル付けは基本的に新しいメッシュがロードされたときにのみ実行する必要があるため、計算の複雑さはそれほど大きな問題ではありません。これは常に発生するわけではありません。したがって、(たとえば)指数関数を使用するアルゴリズムそれが機能する限り、複雑さは問題ないはずです。(しかしもちろん:より効率的であるほど良いです。)

ここまで読んでいただきありがとうございます。さて、どんな助けでも大歓迎です!



編集:提案された解決策に基づく結果

残念ながら、Dialecticusによって提案されたアプローチを機能させることができません。うまくいかなかったかもしれません...とにかく、開始点が緑色の点で示されている次のメッシュを考えて みましょう。少しズームインしてみましょう... それでは、アルゴリズムを開始しましょう。最初のステップの後、ラベル付けは次のようになります(赤=「スター付きパス」、青=「リング状パス」): これまでのところ良好です。2番目のステップの後: そして3番目: ... 4番目: しかし今、私たちは問題を抱えています!もう1ラウンドやりましょう。ただし、マゼンタでプロットされた三角形に注意してください。 私の現在の実装によると、マゼンタの三角形のすべてのエッジはリングパス上にあるため、青色である必要があります。これは事実上反例になります。どういうわけか間違っているかもしれません...しかし、いずれにせよ、開始ノードに最も近い2つのエッジを赤にすることはできません。3番目のラベルが赤で表示されている場合、そのソリューションはもはやアイデアに実際には適合していないようです。

ところで、これが使用されたデータです。各行は1つのエッジを表し、列は次のように解釈されます。

  1. 最初のノードのインデックス
  2. 2番目のノードのインデックス
  3. 最初のノードのx座標
  4. 最初のノードのy座標
  5. 2番目のノードのx座標
  6. 2番目のノードのy座標

開始ノードは、インデックス1を持つノードです。


次に、RafałDowgirdによって提案された方法を試してみるべきだと思います...しかし、おそらくしばらくの間、まったく異なることをする必要があります:)

0 投票する
1 に答える
3154 参照

svn - TeamCity - SVN とラベル付け: 正しく行うには?

SOですべてのTeamCity、SVN、およびラベル付けの質問を読みましたが、特定の問題に適用する継ぎ目はありません。

ここでは、SVN に次の構造があります。

TeamCity で、プロジェクト A の SVN ルートを次のように構成しました。

そして、ビルドプロセスは魅力のように機能します.

ただし、ラベリングを追加したいのですが、ドキュメントまたは私が知っている他の設定で指定されているようにラベリングルールを設定することもできます。

次のエラーが表示されます。

これが発生する理由は誰にもありますか、またはこれを正しく設定するにはどうすればよいですか?

時間内: TeamCity はすべてのビルドの前にチェックアウト フォルダーを消去するように構成されているため、SVN にアクセスするユーザーはチェックアウトを正しく行います。

0 投票する
1 に答える
2498 参照

map - Geoserver TextSymbolizerレンダリングの問題?

私はgeoserver2.0.1を使用し、textsymbolizerを使用して地図上のフィーチャにラベルを付けました。私がfont-size、font-family、または..を変更しようとすると、効果がないため、geoserverは''タグをサポートしていない可能性があります。異なるスタイルでフィーチャーにラベルを付けるにはどうすればよいですか?

0 投票する
1 に答える
1231 参照

android - Android での接続されたコンポーネントのラベリング

画像からのナンバープレート抽出に関連するAndroidアプリを作成しています。ナンバー プレートを抽出するために使用しているアルゴリズムは、画像内のオブジェクト (ブロブ) の接続コンポーネント ラベル付けに基づいています。matlab では、bwlabel() を使用して CCL を簡単に実行できますが、Android では bwlabel のようなものを見つけることができません (Eclipse IDE)

Androidで画像内のオブジェクトにラベルを付けるのに役立つ事前定義された方法またはその他の方法はありますか?

0 投票する
1 に答える
790 参照

whitelist - Webサイトの自己規制コンテンツラベリングのためのICRAに代わるものはありますか?

私は、 RDFおよびPICSのラベル付けで表現されたICRA語彙を使用して、歴史的に自分自身にラベルを付けてきたギャンブルのWebサイトで作業しています。これらのラベルは、 WebサイトへのアクセスをブロックするためにInternet Explorer 6ContentAdvisorなどのシステムによって解釈されたと私は理解しています。

残念ながら、 ICRAホームページで証明されているように、ICRAラベリングスキームは機能していないようです。

ICRAラベリングエンジンは廃止されました。現在のすべてのラベルは引き続きインターネットコンテンツフィルターで機能しますが、ICRAラベルジェネレーター、ICRAツール、およびWebマスターサポートは利用できなくなります。

ラベルは引き続き機能する可能性がありますが、新しいRDFファイルを生成することはできません。さらに、PICSはPOWDERと呼ばれるものに取って代わられました。

私の質問は次のとおりです。言語、暴力、アダルトコンテンツ、ギャンブルなどの潜在的に有害なコンテンツを含むものとしてWebサイトのコンテンツを識別するために使用する必要がある他の自己ラベル付けスキームはありますか?NetnannyやCyber​​sitterのような製品はこれらのスキームを必要としますか、それともURLホワイトリストに基づいてコンテンツをブロックしますか?

更新:私はいくつかの可能な代替案を見つけましたが、それらがどれほど有用であるかをまだ評価していません:

  • SafeSurfは、さまざまな種類のコンテンツをカバーする評価システムです
  • RTALabelは、サイトを「成人向け」として識別するかなり粗いシステムです。
0 投票する
1 に答える
566 参照

performance - OpenGL テキスト ラベル付けの技術と速度の期待

私はopengl(固定機能パイプライン)を使用しており、潜在的に数十万のポイントを描画し、それぞれにテキストラベルを付けています。この質問は、私が合理的な方法でこれを行っているかどうか、および速度に関して何が期待できるかについてのものです。

テキスト ラベルは、文字ごとにテクスチャ座標の四角形を作成し、小さなフォント ビットマップを使用して四角形をテクスチャリングすることによって描画されます (各文字は、テクスチャ内で約 5x13 ピクセルです)。

テスト ファイルには、経度と緯度で指定された約 158,000 のポイントがあるため、この経度/緯度空間が「モデル空間」です。それらのポイントを読み取り、それらのopengl頂点バッファーを作成します。次に、各ポイントは、通常 3 文字または 4 文字の長さのラベルを取得します。つまり、平均で 3.5 文字としましょう。ポイントはスクリーン座標で描画されます (オルソ投影モード)。キャラクターごとに、テクスチャ座標の rect を作成してキャラクターの適切なピクセルを取得し、スクリーン座標でキャラクターが描画される四角形を作成します。これら 2 つの四角形のセットは、それぞれ頂点バッファーに入れられます。つまり、158k * 3.5 * 8 = 440 万ポイント、つまり、描画四角形の 880 万の個別の座標番号と、テクスチャ座標の 880 万の番号です。

レンダリングするときが来たら、すべてのモデル ポイントの現在の画面位置と一致するように、すべての描画四角形の画面座標を更新する必要があります (少なくともこれが唯一の方法だと思います)。つまり、158 個のモデル ポイントのそれぞれについて、ポイントのモデル (ワールド) 座標から投影された (スクリーン) 座標を計算し、ポイントの 3 つまたは 4 つの文字四角形のそれぞれに 4 つのコーナー座標を設定する必要があります。 . したがって、基本的には、レンダリングごとに 880 万の数字をすべて更新しています。これらの数値を更新するには、レンダリングごとに約 0.3 秒かかります。

質問番号 1: これは、opengl でポイントのラベル付けを処理する正しい/必要な方法のように聞こえますか? 「このモデル ポイントにリンクされているが、投影されたモデル ポイントからのスクリーン オフセットとして扱われる、この長方形ポイントのセットに自動的にレンダリングする」と言う方法があれば理想的です。そうすれば、レンダリングごとに描画四角形を更新する必要がなくなります。でもそんなことないですよね?

質問 2: 各レンダリングの前にこれらすべての画面四角形を更新する時間に加えて、158k のすべてのラベルが画面に表示されると、レンダリング自体に約 1 秒かかります (これは明らかに有用なユーザー エクスペリエンスではありませんが、私はここで速度を理解しようとしているだけです)。ズームインすると、実際に画面に描画されるポイント/ラベルが少なくなり、レンダリング時間はそれに比例して短くなります。平均的/最新の GPU を搭載した私の平均的/最新のラップトップで、1 秒が 158k * 3.5 = 553k のテクスチャ付きクワッドをレンダリングするのに妥当な時間のように聞こえるかどうかを理解しようとしています。「何百万もの三角形」が障害ではないと人々が話していることは知っていますが、私が見ている速度が合理的/予想されるテクスチャリングについて疑問に思っています。

助けてくれてありがとう。

以下のコードを追加しました。position_labels私が取り除きたいのは、各レンダーの呼び出しであることに注意してください。

0 投票する
1 に答える
489 参照

list - プロローグ リストのリスト ドメインとラベリング

L=[[X,Y,Z],[1,A,B],[2,C,D]], L ins 1..3, all_different(L), label(L).

リストのリスト内の変数に値を入力したいだけです。リストの要素 (リスト) をより簡単な方法で取得する解決策はありますget_element_at(L,1)か?

0 投票する
3 に答える
1532 参照

opengl - OpenGL マップ アプリケーションのラベル

短縮版

ユーザーがズームインおよびズームアウトするときに座標を手動で再計算することなく、OpenGL マッピング アプリケーションで短いテキスト ラベルを描画するにはどうすればよいですか?

ロングバージョン

最大約 25 万ポイントのデータ セットを描画できるようにする必要がある OpenGL ベースのマッピング アプリケーションがあります。各ポイントには、通常 4 ~ 5 文字の短いテキスト ラベルを付けることができます。

現在、すべての文字を含む単一のテキストを使用してこれを行っています。ポイントごとに、ラベル内の各文字のクワッドを定義します。したがって、「Fred」というラベルの付いたポイントには 4 つのクワッドが関連付けられ、各クワッドはテクスチャ座標を使用してその単一のテクスチャに対応するキャラクターを描画します。

マップを描画するときは、マップ ポイント自体をマップ座標 (経度/緯度など) で描画します。次に、画面座標で各点の位置を計算し、その点のラベルの各クワッドの 4 つのコーナー ポイントを、再び画面座標で更新します。(たとえば、ポイントがスクリーン ポイント 100, 150 に描画されていると判断した場合、ポイントのラベルの最初の文字のクワッドを、左上のポイント 105, 155 で始まり、幅が特定の文字に適した 6 ピクセル、高さ 12 ピクセル. 次に、2 番目の文字は 120、155 などで始まります.) 次に、これらすべてのラベル文字クワッドが正しく配置されたら、直交スクリーンを使用してそれらを描画します.投影。

問題は、これらすべての文字クワッド座標を更新するプロセスが遅く、150k ポイントの特定のテスト データ セットで約 0.5 秒かかることです (つまり、各ラベルの長さは約 4 文字であるため、約 150k * [ 1 ポイントあたり 4 文字] * [1 文字あたり 4 座標ペア] アップデートごとに設定する必要がある座標ペア。

マップ アプリケーションにズームが含まれていなければ、更新のたびにこれらすべての座標を再計算する必要はありません。ラベルの座標を一度計算してから、表示用の四角形をシフトして正しい領域を表示するだけです。しかし、ズームでは、座標計算を行わないと機能させる方法がわかりません。そうしないと、ズームインすると文字が大きくなり、ズームアウトすると文字が小さくなります。

私が望んでいるのは (そして、OpenGL が提供していないと私が理解していること) は、固定された画面座標の四角形に四角形を描画する必要があることを OpenGL に伝える方法ですが、その四角形の左上の位置は、マップ座標空間内の特定のポイント。したがって、プリミティブ階層 (特定のマップ ポイントは、そのラベル キャラクター クワッドの親) と、この階層内で 2 つの異なる座標系を混在させる機能の両方が必要です。

私が設定できる魔法の変換マトリックスがあるかどうかを理解しようとしていますが、それを行う方法がわかりません。

私が検討したもう 1 つの方法は、各ポイントでシェーダーを使用して、そのポイントのラベル文字クワッド座標の計算を処理することです。私はこれまでシェーダーを扱ったことがなく、(a) シェーダーを使用してこれを行うことが可能かどうか、および (b) シェーダー コードでこれらすべてのポイントを計算することで、自分で計算するよりも実際に何かが得られるかどうかを理解しようとしています。 . (ちなみに、大きなボトルネックは、更新された座標を GPU にアップロードすることではなく、クワッド座標を計算することであることを確認しました。後者は少し時間がかかりますが、それは計算であり、更新される座標の数です。その 0.5 秒の大部分を占めます。)

(もちろん、別の方法としては、最初に特定のビューでどのラベルを描画する必要があるかをより賢くすることです。しかし、ここでは、すべてのラベルを描画する必要があると仮定して、解決策に集中したいと思います。)

0 投票する
2 に答える
853 参照

php - PHPのWordテンプレートからWord文書を生成するための最良の方法は何ですか?

Word文書にエイブリーのひな形のテンプレートがあります。私がやりたいのは、オブジェクトの印刷とラベル付けを簡単にするために、テンプレートに画像(この場合はQRコード)を入力することです。

私は疑問に思っています、これを行う最も簡単な方法は何でしょうか?テンプレートをWordXMLファイルとして保存しましたが、ファイルを見ると絶望的です。テンプレートをHTMLに変換しようとしましたが、当然のことながら、フォーマットが台無しになりました。次にどこに行けばいいのかわからない、何かアイデアはありますか?

0 投票する
0 に答える
94 参照

c# - チェックボックスのグリッド値をラベルに

チェックボックスのグリッドを監視して、チェックされた状態のインスタンスを収集しようとしています。これらのチェックされた状態のいずれかが表示された場合は、カウンターをインクリメントしてラベルに入れます。例:

-user には、選択するチェックボックスのグリッドがあります。

-user がいくつかのボックスを選択します。

-ボックスが選択されるたびに、ウィンドウのラベルが増え、現在選択されているボックスの数が表示されます。

-user がチェックボックスの選択を解除します。それに応じて、ウィンドウ ラベルが更新されます。