1. 製品
  2.   画像
  3.   C++
  4.   Video++
 
  

並列画像処理用のオープンソース C++ ライブラリ 

一般的な N 次元画像コンテナ、強化された一連の画像処理アルゴリズムなどをサポートする無料の C++ API。

Video++ は、ソフトウェア開発者が独自の C++ アプリケーション内で画像およびビデオ ファイルを操作できるようにする、強力なマルチスレッドおよびクロスプラットフォームの C++ 画像編集 API です。このライブラリは非常に扱いやすく、C++11/C++14 の新機能を利用して開発されています。 Video++ の背後にある主なアイデアは、新しい C++ 標準を利用して画像処理フレームワークをゼロから再設計することです。

Video++ライブラリの1つの優れた機能は、NIEve非最適化版よりも最大32倍の高速で実行する並列画像処理カーネルの簡単な定義です。 ライブラリには、一般的なN次元画像コンテナ、強化された一連の画像処理アルゴリズム、色を埋める、より良いメモリ管理、境界を埋める、3Dサブ画像の使用など、いくつかの重要な機能が含まれています。

このライブラリは、ピクセル バッファおよび画像の処理に役立つ別の情報へのアクセスを提供する画像コンテナにアクセスするための便利な機能を提供しています。また、openCV との相互運用性を提供し、OpenCV イメージ タイプとの間の明示的な変換をサポートします。

Previous Next

ビデオ++入門

完全なインストールには、次のコマンドを使用してください。 Video++ はヘッダーのみであるため、必要なすべての機能にアクセスするには、vpp.h ヘッダーを含める必要があります。また、Video++ をインストールする前に、システムに Eigen3 と Boost をインストールする必要があります。

Video++をインストール git コマンドで

 git clone https://github.com/matt-42/vpp.git
cd vpp
./install.sh your_install_prefix # Install iod and vpp in a given prefix

C++ ライブラリによる並列画像処理

オープンソース Video++ ライブラリは、ソフトウェア開発者が C++ コマンドを使用して並列画像を処理するためのカーネルを定義することができます。 カーネルは通常のカーネルよりも32倍速く実行できるということです。 複数のコアで実行されている複数のスレッドを実行しているすべての利用可能なCPUコア上のカーネルの実行を均等に広げます。 境界線を値で埋める、境界線ミラーを埋める、アライメントの設定、画像ピクセルへのアクセス、画像のフィルタを適用するなどの機能をサポートしています。

C++ による画像の追加

オープンソース Video++ ライブラリは、ピクセル単位のフィルタを使用して画像を追加するための完全な機能を提供します。 シンプルなフィルタの効率的な実装を素早く書くことができる一連の汎用オブジェクトとルーチンを提供します。 多くの画像処理フィルタは、ピクセルを計算した値で埋めるシンプルな機能です。そのため、異なるピクセルに関する計算の依存性はありません。

C++ 経由で 2D 画像を追加する

int main()
{
  using namespace vpp;
  image2d img1(make_box2d(100, 200), _border = 3);
  image2d img2({100, 200});
  assert(&img1(0,0) == &img1[0][0]);
  assert(&img1(0,0) == &(*img1.begin()));
  assert(img1.domain() == img2.domain());
  assert(img1.nrows() == 100);
  assert(img1.ncols() == 200);
  {
    image2d img(make_box2d(5, 5), _border = 1);
    assert(&img(0,0) == img.address_of(vint2(0,0)));
    assert(&img(4,0) == img.address_of(vint2(4,0)));
    auto s1 = img.subimage(img.domain());
    assert(&s1(0,0) == s1.address_of(vint2(0,0)));
    for (auto p : img.domain())
      assert(img(p) == img[p[0]][p[1]]);
    for (auto p : img.domain())
      assert(img(p) == s1[p[0]][p[1]]);
  }
}
 日本