Boost.GIL

 
 

โอเพ่นซอร์ส C ++ ไลบรารีรูปภาพทั่วไป

C++ API ที่สรุปการแสดงรูปภาพจากอัลกอริทึม และรองรับการทำงานกับรูปภาพที่เรียบง่ายและซับซ้อน สร้างฮิสโตแกรม คำนวณการไล่ระดับสีของรูปภาพ การบิดและการสุ่มตัวอย่างซ้ำ และอื่นๆ

ภาพเป็นส่วนพื้นฐานของหลายโครงการที่เกี่ยวข้องกับกราฟิกวิดีโอดิจิตอลวิสัยทัศน์คอมพิวเตอร์และการประมวลผลภาพ นอกจากนี้ภาพสามารถแสดงได้หลายวิธี (พื้นที่สีความลึกบิตการสั่งซื้อช่องนโยบายการจัดตําแหน่ง ฯลฯ ) ดังนั้นการทํางานในโครงการที่เกี่ยวข้องกับภาพใหม่ที่สามารถทั่วไปและมีประสิทธิภาพเป็นสิ่งที่ท้าทายมาก บูสท์ทั่วไปห้องสมุดภาพ (IL) เป็นห้องสมุดโอเพนซอร์สที่ช่วยให้ผู้พัฒนาซอฟต์แวร์ความสามารถในการทํางานกับภาพที่เรียบง่ายและซับซ้อนภายใน C++ แอปพลิเคชันของตัวเอง

สิ่งที่ดีเกี่ยวกับห้องสมุด Boost.IL คือการแสดงภาพนามธรรมจากอัลกอริทึมและช่วยให้การเขียนรหัสที่สามารถทํางานบนความหลากหลายของภาพที่มีประสิทธิภาพเทียบกับการเขียนด้วยมือสําหรับประเภทภาพเฉพาะ ดังนั้นจึงทําให้งานของนักพัฒนาได้ง่ายโดยการอนุญาตให้พวกเขาเขียนรหัสครั้งเดียวและมีการทํางานสําหรับประเภทภาพใด ๆ

ห้องสมุด Boost.IL ได้รับการออกแบบให้เป็น TL และ Boost คําชม. อีกแง่มุมที่ดีของห้องสมุดคือความเร็วและความยืดหยุ่น ความเร็วเป็นส่วนสําคัญของการออกแบบห้องสมุด คุณสามารถกําหนดพารามิเตอร์ภาพใด ๆ ในเวลาทํางานสําหรับค่าใช้จ่ายประสิทธิภาพเล็กน้อยเมื่อเทียบกับห้องสมุดอื่น ๆ อีกมากมาย ให้การสนับสนุนสําหรับคุณสมบัติที่สําคัญหลายประการเช่นพิกเซลที่ไม่ใช่ไบต์, การไล่ระดับสีภาพคอมพิวเตอร์, บู๊ทส์รวม, กําหนดช่องไปยังพิกเซลระดับสีเทา, การรวมและการสุ่มตัวอย่าง, และอื่น ๆ.

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.IL ได้ให้การสนับสนุนที่สมบูรณ์สําหรับการดําเนินงานภาพระดับพิกเซลภายใน C++ โปรแกรมของพวกเขาเอง ไลบรารีได้รวมการดําเนินงานที่มีประโยชน์บางอย่างที่ช่วยให้ผู้ใช้สามารถจัดการกับค่าพิกเซล, ตัวชี้พิกเซล, และการอ้างอิงพิกเซล, เช่นการทําสีพิกเซล, การเข้าถึงช่อง, เปรียบเทียบสองช่อง, การสร้าง GB- แผนการสร้าง

แปลงพื้นที่สีเป็นสีเทาผ่าน 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.IL แหล่งเปิดให้โปรแกรมเมอร์ซอฟต์แวร์ความสามารถในการหมุนภาพด้วยเพียงไม่กี่บรรทัดของรหัส Boost.IL สนับสนุนความหลากหลายของฟังก์ชั่นการเปลี่ยนแปลงภาพที่สามารถดําเนินการหมุนตามแกนใด ๆ ภาพพลิกในแนวตั้งหรือแนวนอนดึงภาพย่อยสี่เหลี่ยมใช้การแปลงสี 90 องศาหมุนพิเศษหรือ 270

การเปลี่ยนแปลงภาพผ่าน C++ API


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