1. מוצרים
  2.   תמונה
  3.   C++
  4.   Boost.GIL

Boost.GIL

 
 

ספריית תמונות גנרית C++ קוד פתוח

C++ API שמפשט ייצוגי תמונות מאלגוריתמים ותומך בעבודה עם תמונות פשוטות ומורכבות. צור היסטוגרמה, חישוב מעברי תמונה, קונבולולוציה ודגימה מחדש, וכן הלאה.

תמונות הן החלק הבסיסי של פרויקטים רבים הקשורים לגרפיקה, וידאו דיגיטלי, ראייה ממוחשבת ועיבוד תמונה. יתרה מכך, תמונות יכולות להיות מיוצגות בדרכים רבות ושונות (מרחב צבע, עומק סיביות, סדר ערוץ, מדיניות יישור וכו'). אז העבודה על פרויקט חדש הקשור לתמונה שיכול להיות גנרי וגם יעיל היא מאתגרת מאוד. Boost Generic Image Library (GIL) היא ספריית קוד פתוח המעניקה למפתחי תוכנה את היכולת לעבוד עם תמונות פשוטות ומורכבות בתוך יישומי C++ משלהם.

הדבר הגדול בספריית Boost.GIL הוא שהיא מופשטת ייצוגי תמונה מאלגוריתמים ומאפשרת כתיבת קוד שיכול לעבוד על מגוון תמונות עם ביצועים דומים לכתיבה ידנית עבור סוג תמונה מסוים. אז זה מקל על עבודות המפתחים בכך שהוא מאפשר להם לכתוב קוד פעם אחת ולאפשר לו לעבוד עבור כל סוג תמונה.

ספריית Boost.GIL מעוצבת כמחמאה ל-STL ובוסט. היבט נהדר נוסף של הספרייה הוא מהירות וגמישות. מהירות הייתה חלק מרכזי בעיצוב הספרייה. אתה יכול בקלות להגדיר כל פרמטר תמונה בזמן הריצה תמורת עלות ביצועים מינורית מאוד בהשוואה לספריות רבות אחרות. הוא מספק תמיכה בכמה תכונות חשובות כגון פיקסלים שאינם מיושרים בתים, מעברי תמונות מחשוב, מגביר את האינטגרציה, הקצאת ערוץ לפיקסל בקנה מידה אפור, קונבולולוציה ודגימה מחדש, וכן הלאה.

Previous Next

תחילת העבודה עם 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++ API

ספריית הקוד הפתוח 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));
  }
 עִברִית