مكتبة مفتوحة المصدر C ++ لمعالجة الصور المتوازية
واجهة برمجة تطبيقات C ++ مجانية تدعم حاويات الصور العامة ذات الأبعاد N ، ومجموعة محسّنة من خوارزميات معالجة الصور ، وما إلى ذلك.
Video ++ عبارة عن واجهة برمجة تطبيقات لتحرير الصور C ++ قوية متعددة الخيوط وعبر الأنظمة الأساسية تتيح لمطوري البرامج العمل مع الصور وملفات الفيديو داخل تطبيقات C ++ الخاصة بهم. من السهل جدًا التعامل مع المكتبة وتم تطويرها بالاستفادة من الميزات الجديدة لـ C ++ 11 / C ++ 14. الفكرة الرئيسية وراء Video ++ هي إعادة تصميم إطار معالجة الصور من البداية مع الاستفادة من معيار C ++ الجديد.
إحدى الميزات الرائعة لمكتبة Video ++ هي التعريف السهل لنواة معالجة الصور المتوازية التي تعمل بسرعة تصل إلى 32 مرة أسرع من الإصدار الساذج غير المحسن. تضمنت المكتبة العديد من الميزات المهمة مثل حاويات الصور العامة ذات الأبعاد N ، ومجموعة محسّنة من خوارزميات معالجة الصور ، ولون التعبئة ، وإدارة أفضل للذاكرة ، وملء الحدود ، واستخدام الصور الفرعية ثلاثية الأبعاد ، وغير ذلك الكثير.
قدمت المكتبة ميزة مفيدة للوصول إلى حاويات الصور التي توفر الوصول إلى مخزن البكسل وإلى جزء آخر من المعلومات المفيدة لمعالجة الصورة. كما يوفر إمكانية التشغيل البيني لـ openCV ويدعم التحويلات الصريحة من وإلى أنواع صور OpenCV.
الشروع في استخدام Video ++
الرجاء استخدام الأمر التالي للتثبيت الكامل. الفيديو ++ هو رأس فقط لذلك للوصول إلى جميع الميزات الضرورية ، يجب عليك تضمين رأس vpp.h. تحتاج أيضًا إلى الحصول على Eigen3 و Boost على نظامك قبل تثبيت Video ++.
قم بتثبيت 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 مرة من النوى العادية. إنه ينشر بشكل متساو تنفيذ النواة على جميع نوى وحدة المعالجة المركزية المتاحة التي تعمل على عدة خيوط تعمل على عدة أنوية. وهو يدعم ميزات مثل ملء الحدود بالقيمة ، وملء مرآة الحدود ، وضبط المحاذاة ، والوصول إلى وحدات بكسل الصورة ، وتطبيق المرشحات على الصور ، وما إلى ذلك.
إضافة الصورة عبر C ++
توفر مكتبة Video ++ مفتوحة المصدر وظائف كاملة لإضافة الصور باستخدام عامل تصفية البكسل. يوفر مجموعة من الكائنات والإجراءات العامة التي تسمح لكتابة تطبيقات فعالة لفلاتر بسيطة بسرعة. العديد من مرشحات معالجة الصور عبارة عن وظائف بسيطة تملأ وحدات البكسل بقيم محسوبة ، وبالتالي لا تظهر أي تبعيات بين العمليات الحسابية فيما يتعلق بوحدات البكسل المختلفة.
أضف صورة ثنائية الأبعاد عبر C ++
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]]);
}
}