Boost.GIL

 
 

ओपन सोर्स सी ++ जेनेरिक इमेज लाइब्रेरी

C++ API जो एल्गोरिदम से छवि प्रस्तुतीकरण को सारगर्भित करता है और सरल और जटिल छवियों के साथ काम करने का समर्थन करता है। एक हिस्टोग्राम जेनरेट करें, इमेज ग्रेडिएंट्स की गणना करें, कनवल्शन और रेज़म्पलिंग, और इसी तरह।

चित्र ग्राफिक्स, डिजिटल वीडियो, कंप्यूटर विज़न और इमेज प्रोसेसिंग से संबंधित कई परियोजनाओं का मूलभूत हिस्सा हैं। इसके अलावा, छवियों को कई अलग-अलग तरीकों से दर्शाया जा सकता है (रंग स्थान, बिट गहराई, चैनल क्रम, संरेखण नीति, आदि)। इसलिए एक नई छवि-संबंधित परियोजना पर काम करना जो सामान्य होने के साथ-साथ कुशल भी हो, बहुत चुनौतीपूर्ण है। बूस्ट जेनेरिक इमेज लाइब्रेरी (जीआईएल) एक ओपन सोर्स लाइब्रेरी है जो सॉफ्टवेयर डेवलपर्स को अपने स्वयं के सी ++ अनुप्रयोगों के अंदर सरल और जटिल छवियों के साथ काम करने की क्षमता देती है।

Boost.GIL लाइब्रेरी के बारे में सबसे अच्छी बात यह है कि यह एल्गोरिदम से छवि प्रस्तुतीकरण को सारगर्भित करता है और ऐसे कोड लिखने की अनुमति देता है जो किसी विशेष छवि प्रकार के लिए हस्त-लेखन के तुलनीय प्रदर्शन के साथ विभिन्न छवियों पर काम कर सकता है। इसलिए यह डेवलपर की नौकरियों को एक बार कोड लिखने और किसी भी छवि प्रकार के लिए काम करने की अनुमति देकर आसान बनाता है।

Boost.GIL लाइब्रेरी को STL और बूस्ट कॉम्प्लिमेंट के रूप में डिज़ाइन किया गया है। पुस्तकालय का एक और बड़ा पहलू गति और लचीलापन है। गति पुस्तकालय के डिजाइन का एक महत्वपूर्ण हिस्सा रहा है। आप कई अन्य पुस्तकालयों की तुलना में बहुत ही मामूली प्रदर्शन लागत के लिए रन टाइम पर किसी भी छवि पैरामीटर को आसानी से परिभाषित कर सकते हैं। यह कई महत्वपूर्ण विशेषताओं के लिए समर्थन प्रदान करता है जैसे कि गैर-बाइट-संरेखित पिक्सेल, कंप्यूटिंग छवि ग्रेडिएंट, बूस्ट एकीकरण, एक ग्रे-स्केल पिक्सेल के लिए एक चैनल असाइन करना, कनवल्शन और पुन: नमूनाकरण, और इसी तरह।

Previous Next

Boost.GIL . के साथ शुरुआत करना

Boost.GIL को स्थापित करने का सबसे आसान तरीका GitHub का उपयोग करना है। सुचारू स्थापना के लिए कृपया निम्न कमांड का उपयोग करें

Boost.GILvia GitHub स्थापित करें।

git clone --https://github.com/boostorg/gil

चित्र पढ़ना और लिखना

हिस्टोग्राम एक डिजिटल छवि में तानवाला वितरण का चित्रमय प्रतिनिधित्व है। छवि प्रसंस्करण संदर्भ में, छवि का हिस्टोग्राम सामान्य रूप से पिक्सेल तीव्रता मानों के हिस्टोग्राम को संदर्भित करता है। बूस्ट.जीआईएल पुस्तकालय सॉफ्टवेयर डेवलपर्स को सी ++ कोड का उपयोग करके अपने स्वयं के एप्लिकेशन के अंदर एक हिस्टोग्राम उत्पन्न करने में सक्षम बनाता है। यह प्रत्येक बिन में आने वाले पिक्सेल मानों की संख्या की गणना करके उत्पन्न किया जा सकता है। आप आसानी से छवि के चमकदार हिस्टोग्राम की गणना भी कर सकते हैं।

सी ++ एपीआई के माध्यम से छवि लिखना

#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 का उपयोग करके पिक्सेल-स्तरीय छवि संचालन

ओपन सोर्स लाइब्रेरी बूस्ट.जीआईएल ने अपने स्वयं के सी ++ अनुप्रयोगों के अंदर पिक्सेल-स्तरीय छवि संचालन के लिए पूर्ण समर्थन प्रदान किया है। पुस्तकालय में कुछ उपयोगी संचालन शामिल हैं जो उपयोगकर्ताओं को पिक्सेल मान, पिक्सेल पॉइंटर्स और पिक्सेल संदर्भों को संभालने में सक्षम बनाता है, जैसे पिक्सेल रंगीन बनाना, चैनल तक पहुंचना, दो चैनलों की तुलना करना, कॉन्स प्लानर पॉइंटर का निर्माण करना, ग्रे एल-वैल्यू को आरजीबी में परिवर्तित करना , और इसी तरह।

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);
}

सी ++ ऐप्स के अंदर छवि परिवर्तन

ओपन सोर्स बूस्ट.जीआईएल लाइब्रेरी सॉफ्टवेयर प्रोग्रामर्स को कोड की कुछ पंक्तियों के साथ छवियों को घुमाने की क्षमता देती है। बूस्ट.जीआईएल विभिन्न प्रकार के छवि परिवर्तन कार्यों का समर्थन करता है जो किसी भी अक्ष-संरेखित रोटेशन को निष्पादित कर सकते हैं, छवि को लंबवत या क्षैतिज रूप से फ्लिप कर सकते हैं, एक आयताकार उप-छवि निकाल सकते हैं, रंग रूपांतरण लागू कर सकते हैं, 90, 180, या 270 डिग्री तक विशेष घुमाव कर सकते हैं। पर।

सी ++ एपीआई के माध्यम से छवि परिवर्तन


  template 
  void y_gradient(const SrcView& src, const DstView& dst) {
      x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
  }
 हिन्दी