サイズxの画像を指定すると、画像を複数の画像に分割して、すべてのサブ画像を専用CPUに送信して、領域の拡大などを使用してセグメントを検出できるCライブラリを探しています。
4 に答える
本当に画像を分割しますか?
マルチコアCPUを使用している場合は、イメージを1回ロードしてから、x、y、width、heightパラメーターを使用してイメージの処理スレッドを実行することをお勧めします(処理はイメージのみを読み取ると思います)。
より多くのホストがある場合は、ディスパッチャーがあり、イメージを使用して、解凍、分割、パーツの圧縮、パーツの送信など、いくつかの操作を実行しています。処理ホストは同じローカルネットワーク上にあると思います。画像をブロードキャストとしてこのローカルネットワークに送信できる場合、つまり、すべてのホストが一度に画像を受信すると、パフォーマンスが向上します。ディスプラッタはパーツを分割して再送信する必要がなく、処理タスクは受信した画像全体の適切な部分(x、y、幅、高さ)。使用している画像形式はわかりませんが、画像全体を解凍する必要はないと確信しています。少なくとも垂直方向には、不要な領域をスキップする必要があります。(画像を全幅の領域に分割して、不要な領域の解凍を回避する必要があります。)
Shaiとjapreissに同意し、あなたの目標は画像のセグメンテーションであるため、境界の問題が発生することの根底にある間(近隣情報が必要なため)、画像操作部分については、次のようなものを提案します
libpng: http://www.libpng.org/pub/png/libpng.html
そして、これらの StackOverflow の質問を見てください。
- libpngを使用してPNGをバッファにエンコードする方法は?
- libpng を使用して画像をセグメントに「分割」します(これはまだ適切に回答されていません) 。
画像の値でバッファが満たされている場合、その一部の読み取りと書き込みはまったく難しいことではありません。
個別のセグメンテーション出力からの結果をマージするのは難しい部分です。たまたまセグメントを分割した場合はどうなりますか? 分割された各画像からセグメントを取得し、それらをマージする必要があります。不確実なケースがあるため、2 つのリージョンをいつマージするかを決定するメトリックを選択する必要があります。
これが懸念される場合は、シーム カービングアルゴリズムを試して、リージョン エッジと交差する可能性が低い分割を生成することをお勧めします。Photoshop のコンテンツに応じたサイズ変更ツールは、シーム カービングを使用して、視覚的に重要ではない画像内の水平方向および垂直方向のパスを見つけます。