Boost.GIL
مكتبة الصور العامة C ++ مفتوحة المصدر
واجهة برمجة تطبيقات C ++ التي تستخلص تمثيلات الصور من الخوارزميات وتدعم العمل مع الصور البسيطة والمعقدة. إنشاء مدرج تكراري ، وحساب تدرجات الصورة ، والتفاف وإعادة التشكيل ، وما إلى ذلك.
الصور هي الجزء الأساسي للعديد من المشاريع المتعلقة بالرسومات والفيديو الرقمي ورؤية الكمبيوتر ومعالجة الصور. علاوة على ذلك ، يمكن تمثيل الصور بعدة طرق مختلفة (مساحة اللون ، وعمق البت ، وترتيب القناة ، وسياسة المحاذاة ، وما إلى ذلك). لذا فإن العمل في مشروع جديد مرتبط بالصورة يمكن أن يكون عامًا وفعالًا يمثل تحديًا كبيرًا. مكتبة الصور العامة (GIL) هي مكتبة مفتوحة المصدر تمنح مطوري البرامج القدرة على العمل مع الصور البسيطة والمعقدة داخل تطبيقات C ++ الخاصة بهم.
إن الشيء العظيم في مكتبة Boost.GIL هو أنها تستخرج تمثيلات الصور من الخوارزميات وتسمح لكتابة التعليمات البرمجية التي يمكن أن تعمل على مجموعة متنوعة من الصور بأداء مشابه للكتابة اليدوية لنوع معين من الصور. لذلك فهو يجعل مهام المطورين سهلة من خلال السماح لهم بكتابة التعليمات البرمجية مرة واحدة وجعلها تعمل مع أي نوع من الصور.
تم تصميم مكتبة Boost.GIL لتكون تكملة STL و Boost. جانب آخر رائع للمكتبة هو السرعة والمرونة. كانت السرعة جزءًا أساسيًا من تصميم المكتبة. يمكنك بسهولة تحديد أي معلمة صورة في وقت التشغيل بتكلفة أداء بسيطة جدًا مقارنة بالعديد من المكتبات الأخرى. يوفر دعمًا للعديد من الميزات المهمة مثل البكسل غير المحاذاة للبايت ، وتدرجات الصورة الحاسوبية ، وتعزيز التكامل ، وتعيين قناة إلى بكسل ذي مقياس رمادي ، والتفاف وإعادة التشكيل ، وما إلى ذلك.
الشروع في العمل مع Boost.GIL
أسهل طريقة لتثبيت Boost.GIL هي استخدام GitHub. الرجاء استخدام الأمر التالي للتثبيت السلس
قم بتثبيت Boost.GILvia GitHub.
git clone --https://github.com/boostorg/gil
قراءة وكتابة الصور
المدرج التكراري هو التمثيل الرسومي لتوزيع الدرجات اللونية في صورة رقمية. في سياق معالجة الصورة ، يشير الرسم البياني للصورة عادةً إلى رسم بياني لقيم كثافة البكسل. تتيح مكتبة Boost.GIL لمطوري البرامج إنشاء رسم بياني داخل التطبيق الخاص بهم باستخدام كود C ++. يمكن إنشاؤها عن طريق حساب عدد قيم البكسل التي تقع في كل سلة. يمكنك أيضًا حساب الرسم البياني لمعان الصورة بسهولة.
كتابة الصورة عبر C ++ API
#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL
#include
#include
using namespace boost::gil;
int main()
{
rgb8_image_t img(512, 512);
rgb8_pixel_t red(255, 0, 0);
fill_pixels(view(img), red);
png_write_view("redsquare.png", const_view(img));
}
عمليات الصور على مستوى البكسل باستخدام واجهة برمجة تطبيقات C ++
قدمت مكتبة Boost.GIL مفتوحة المصدر دعمًا كاملاً لعمليات الصور على مستوى البكسل داخل تطبيقات C ++ الخاصة بهم. تضمنت المكتبة بعض العمليات المفيدة التي تمكن المستخدمين من التعامل مع قيم البكسل ، ومؤشرات البكسل ، ومراجع البكسل ، مثل جعل البكسل ملونًا ، والوصول إلى قناة ، ومقارنة القناتين ، وإنشاء مؤشر مستوي ثابت ، وتحويل قيمة l الرمادي إلى RGB ، وهلم جرا.
تحويل مساحة اللون إلى تدرج الرمادي عبر C ++
template
void x_luminosity_gradient(SrcView const& src, DstView const& dst)
{
using gray_pixel_t = pixel::type, gray_layout_t>;
x_gradient(color_converted_view(src), dst);
}
تحويل الصور داخل تطبيقات C ++
تمنح مكتبة Boost.GIL مفتوحة المصدر مبرمجي البرامج القدرة على تدوير الصور ببضع سطرين فقط من التعليمات البرمجية. يدعم Boost.GIL مجموعة متنوعة من وظائف تحويل الصور التي يمكن أن تؤدي أي دوران محاذي للمحور ، أو قلب الصورة رأسيًا أو أفقيًا ، أو استخراج صورة فرعية مستطيلة ، أو تطبيق تحويل اللون ، أو استدارة خاصة بمقدار 90 أو 180 أو 270 درجة وهكذا على.
تحويل الصور عبر C ++ API
template
void y_gradient(const SrcView& src, const DstView& dst) {
x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
}