1. Produk
  2.   Imej
  3.   C++
  4.   Boost.GIL

Boost.GIL

 
 

Pustaka Imej Generik C++ Sumber Terbuka

API C++ yang mengabstraksi perwakilan imej daripada algoritma dan menyokong kerja dengan imej yang ringkas dan kompleks. Hasilkan Histogram, kira kecerunan imej, lilitan & pensampelan semula, dan sebagainya.

Imej adalah bahagian asas bagi banyak projek yang berkaitan dengan grafik, video digital, penglihatan komputer dan pemprosesan imej. Selain itu, imej boleh diwakili dalam pelbagai cara (ruang warna, kedalaman bit, susunan saluran, dasar penjajaran, dsb.). Jadi mengerjakan projek berkaitan imej baharu yang boleh menjadi generik serta cekap adalah sangat mencabar. Boost Generic Image Library (GIL) ialah perpustakaan sumber terbuka yang memberikan pembangun perisian keupayaan untuk bekerja dengan imej yang ringkas dan kompleks di dalam aplikasi C++ mereka sendiri.

Perkara yang menarik tentang perpustakaan Boost.GIL ialah ia mengabstraksi perwakilan imej daripada algoritma dan membenarkan penulisan kod yang boleh berfungsi pada pelbagai imej dengan prestasi yang setanding dengan tulisan tangan untuk jenis imej tertentu. Jadi ia memudahkan kerja pembangun dengan membenarkan mereka menulis kod sekali dan memastikan ia berfungsi untuk sebarang jenis imej.

Pustaka Boost.GIL direka bentuk sebagai pujian STL dan Boost. Satu lagi aspek hebat perpustakaan ialah kelajuan dan fleksibiliti. Kepantasan telah menjadi bahagian penting dalam reka bentuk perpustakaan. Anda boleh mentakrifkan mana-mana parameter imej dengan mudah pada masa tayangan untuk kos prestasi yang sangat kecil berbanding dengan banyak perpustakaan lain. Ia menyediakan sokongan untuk beberapa ciri penting seperti piksel tidak sejajar bait, mengira kecerunan imej, Meningkatkan penyepaduan, memperuntukkan saluran kepada piksel skala kelabu, konvolusi & pensampelan semula, dan sebagainya.

Previous Next

Bermula dengan Boost.GIL

Cara paling mudah untuk memasang Boost.GIL adalah dengan menggunakan GitHub. Sila gunakan arahan berikut untuk pemasangan yang lancar

Pasang Boost.GILvia GitHub.

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

Membaca dan menulis gambar

Histogram ialah perwakilan grafik taburan tonal dalam imej digital. Dalam konteks pemprosesan imej, histogram imej biasanya merujuk kepada histogram nilai keamatan piksel. Pustaka Boost.GIL membolehkan pembangun perisian menjana histogram di dalam aplikasi mereka sendiri menggunakan kod C++. Ia boleh dijana dengan mengira bilangan nilai piksel yang jatuh dalam setiap tong. Anda juga boleh mengira histogram kecerahan imej dengan mudah.

Menulis Imej melalui 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));
}

Operasi Imej Tahap Piksel menggunakan API C++

Pustaka sumber terbuka Boost.GIL telah menyediakan sokongan lengkap untuk operasi imej peringkat piksel dalam aplikasi C++ mereka sendiri. Perpustakaan ini telah menyertakan beberapa operasi berguna yang membolehkan pengguna mengendalikan nilai piksel, penunjuk piksel dan rujukan piksel, seperti menjadikan piksel berwarna, mengakses saluran, membandingkan dua saluran, membina penunjuk planar const, menukar nilai l kelabu kepada RGB , dan sebagainya.

Tukar Ruang Warna kepada Skala Kelabu melalui 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);
}

Transformasi Imej dalam Apl C++

Pustaka Boost.GIL sumber terbuka memberikan pengaturcara perisian keupayaan untuk memutar imej dengan hanya beberapa baris kod. Boost.GIL menyokong pelbagai fungsi transformasi imej yang boleh melakukan sebarang putaran sejajar paksi, flip imej secara menegak atau mendatar, mengekstrak sub-imej segi empat tepat, menggunakan penukaran warna, , putaran khas sebanyak 90, 180, atau 270 darjah & sebagainya pada.

Transformasi Imej melalui C++ API


  template 
  void y_gradient(const SrcView& src, const DstView& dst) {
      x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
  }
 Melayu