Java DIP - ไลบรารีโอเพนซอร์ส
ในบทนี้เราจะสำรวจไลบรารีการประมวลผลภาพฟรีบางส่วนที่ใช้กันอย่างแพร่หลายและสามารถรวมเข้ากับโครงการได้อย่างง่ายดาย ห้องสมุดเหล่านี้ ได้แก่ -
- ImageJ
- Fiji
- การถ่ายภาพทั่วไป
- ImageMagick
- Endrov
- LeadTools
- OpenCv
อิมเมจจ
ImageJ เป็นโปรแกรมประมวลผลภาพ Java โดเมนสาธารณะที่ได้รับแรงบันดาลใจจาก NIH Image สำหรับ Macintosh สามารถแสดงแก้ไขวิเคราะห์ประมวลผลบันทึกและพิมพ์ภาพ 8 บิต 16 บิตและ 32 บิต
คุณสมบัติพื้นฐานบางประการของ ImageJ มีอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Runs Everywhere ImageJ เขียนด้วย Java ซึ่งอนุญาตให้ทำงานบน Linux, Mac OS X และ Windows ทั้งในโหมด 32 บิตและ 64 บิต |
2 | Open Source ImageJ และซอร์สโค้ด Java สามารถใช้ได้อย่างอิสระและเป็นสาธารณสมบัติ |
3 | Toolkit ใช้ ImageJ เป็นชุดเครื่องมือการประมวลผลภาพ (ไลบรารีคลาส) เพื่อพัฒนาแอพเพล็ต servlets หรือแอปพลิเคชัน |
4 | Data Types สีเทาหรือสีที่จัดทำดัชนี 8 บิตจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อจุดลอยตัว 32 บิตและสี RGB |
5 | File Formats เปิดและบันทึก GIF, JPEG, BMP, PNG, PGM, FITS และ ASCII เปิด DICOM เปิด TIFFs, GIFs, JPEGs, DICOMs และข้อมูลดิบโดยใช้ URL |
6 | Selections สร้างการเลือกพื้นที่รูปสี่เหลี่ยมผืนผ้ารูปไข่หรือไม่สม่ำเสมอ สร้างการเลือกเส้นและจุด |
7 | Image Enhancement รองรับการปรับให้เรียบ, ความคมชัด, การตรวจจับขอบ, การกรองค่ามัธยฐานและการกำหนดขีด จำกัด สำหรับภาพสีเทา 8 บิตและ RGB |
8 | Color Processing แยกภาพสี 32 บิตเป็นส่วนประกอบ RGB หรือ HSV ผสานส่วนประกอบ 8 บิตเข้ากับภาพสี |
ฟิจิ
ฟิจิเป็นแพ็คเกจการประมวลผลภาพ สามารถอธิบายได้ว่าเป็นการกระจาย ImageJ (และ ImageJ2) ร่วมกับ Java, Java3D และปลั๊กอินจำนวนมากที่จัดเป็นโครงสร้างเมนูที่สอดคล้องกัน ฟิจิเปรียบเทียบกับ ImageJ เมื่อ Ubuntu เปรียบเทียบกับ Linux
นอกเหนือจากคุณสมบัติพื้นฐานของ ImageJ แล้วคุณสมบัติขั้นสูงบางอย่างของฟิจิมีอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Registering 3D images สิ่งนี้เกี่ยวข้องกับการจัดตำแหน่งและการตัดต่อแบบยืดหยุ่นการแยกคุณลักษณะการป้องกันภาพสั่นไหวเป็นต้น |
2 | Segmenting images มีการแบ่งส่วนมากกว่า 35 ประเภท |
3 | Useful keyboard short cuts ฟูจิมีแป้นพิมพ์ลัดมากมาย |
4 | Scripting อนุญาตให้เขียนสคริปต์ด้วยมาโครใน JavaScript, JRuby, Jython, Clojure และ Beanshell |
5 | Developing Plug-ins ใช้ Script Editor เพื่อเริ่มการพัฒนาปลั๊กอินจากนั้นเรียกใช้ปลั๊กอิน |
6 | ImageJ Tricks ImageJ ใช้งานง่าย แต่บางครั้งคุณต้องการฟังก์ชั่นบางอย่างที่ใช้งานได้จริง แต่คุณไม่รู้วิธีเรียกใช้ |
การถ่ายภาพทั่วไป
Apache Commons Imaging ก่อนหน้านี้รู้จักกันในชื่อ Apache Commons Sanselan เป็นไลบรารีที่อ่านและเขียนรูปแบบภาพที่หลากหลายรวมถึงการแยกวิเคราะห์ข้อมูลภาพอย่างรวดเร็วเช่น (ขนาดสีพื้นที่โปรไฟล์ ICC ฯลฯ ) และข้อมูลเมตา
คุณสมบัติพื้นฐานบางประการของ ImageJ มีอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Java Apache Commons Imaging เขียนด้วย Java แท้ 100% ดำเนินการบน JVM ใด ๆ และแพลตฟอร์มใด ๆ โดยไม่ต้องดัดแปลง |
2 | Image Formats มันอ่านและเขียนรูปแบบภาพที่หลากหลายและรองรับรูปแบบและการเข้ารหัสบางอย่างที่ไม่ได้รับจากไลบรารีอื่น ๆ ทั้งหมดหรือเกือบทั้งหมด |
3 | Metadata support สนับสนุนการอ่านและเขียนข้อมูลเมตาที่หลากหลายในรูปแบบที่มีโครงสร้างรวมถึงข้อมูลเมตา EXIF |
4 | Network Friendly เป็นมิตรกับเครือข่าย Commons Imaging จะอ่านเฉพาะข้อมูลที่ต้องการและแคชสิ่งที่อ่านเพื่อไม่ให้หนักเกินไปในเครือข่าย |
5 | Easy to use ออกแบบมาให้ใช้งานง่ายมาก มีอินเทอร์เฟซที่เรียบง่ายและสะอาดตา การดำเนินการส่วนใหญ่เป็นการเรียกวิธีการสร้างภาพเพียงครั้งเดียว |
6 | Transparent Commons Imaging มีจุดมุ่งหมายเพื่อความโปร่งใส ไม่มีบัฟเฟอร์ที่ซ่อนอยู่ในการกำจัดไม่มีหน่วยความจำดั้งเดิมให้ว่างไม่มีเธรดพื้นหลัง |
7 | Open Source เป็นซอฟต์แวร์ฟรี / โอเพ่นซอร์ส สามารถใช้ได้ภายใต้ใบอนุญาตซอฟต์แวร์ Apache |
8 | Color Conversions คลาส ColorConversions เสนอวิธีการแปลงระหว่างช่องว่างสีต่อไปนี้ - CIE-L * CH, CIE-L * ab, CIE-L * uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ และ YXY |
ImageMagick
ImageMagick เป็นชุดซอฟต์แวร์สำหรับสร้างแก้ไขแต่งหรือแปลงภาพบิตแมป สามารถอ่านและเขียนภาพได้มากกว่า 100 รูปแบบ ได้แก่ DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG และ TIFF ใช้ ImageMagick เพื่อปรับขนาดพลิกกระจกหมุนบิดเบือนเฉือนและแปลงภาพปรับสีของภาพใช้เทคนิคพิเศษต่างๆหรือวาดข้อความเส้นรูปหลายเหลี่ยมจุดไข่ปลาและเส้นโค้ง Bezier
คุณสมบัติพื้นฐานบางประการของ ImageMagick มีอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Format conversion จะแปลงภาพจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง (เช่น PNG เป็น JPEG) |
2 | Transform สามารถปรับขนาดหมุนครอบตัดพลิกหรือตัดแต่งภาพ |
3 | Transparency มันทำให้บางส่วนของภาพที่มองไม่เห็น |
4 | Draw เพิ่มรูปร่างหรือข้อความให้กับรูปภาพ |
5 | Decorate เพิ่มเส้นขอบหรือกรอบให้กับรูปภาพ |
6 | Special effects สามารถเบลอเพิ่มความคมชัดขีด จำกัด หรือย้อมสีภาพได้ |
7 | Animation สามารถสร้างลำดับภาพเคลื่อนไหว GIF จากกลุ่มภาพ |
8 | Composite มันสามารถซ้อนภาพหนึ่งทับอีกภาพหนึ่งได้ |
9 | Morphology of shapes มันแยกคุณสมบัติอธิบายรูปร่างและจดจำรูปแบบในภาพ |
10 | Encipher or decipher an image มันแปลงภาพธรรมดาให้กลายเป็นคำพูดพล่อยๆที่ไม่เข้าใจและกลับมาอีกครั้ง |
Endrov
Endrov คือโปรแกรมวิเคราะห์ภาพเอนกประสงค์ เขียนขึ้นโดยอิสระและออกแบบมาเพื่อแก้ไขข้อบกพร่องหลายประการของซอฟต์แวร์เสรีอื่น ๆ และแพ็คเกจเชิงพาณิชย์จำนวนมาก
คุณสมบัติพื้นฐานบางประการของ Endrov มีการอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | View data ดูข้อมูลในรูปแบบ 2 มิติและ 3 มิติ ออกแบบมาเพื่อรองรับโครงร่างข้อมูล 4D ที่ซับซ้อนและไม่ จำกัด จำนวนช่องสัญญาณโดยแต่ละช่องสามารถมีความละเอียด X, Y และ Z ของตัวเองได้ |
2 | Annotate your images มันใส่คำอธิบายประกอบภาพของคุณโดยอัตโนมัติหรือด้วยมือเพื่อทำความเข้าใจและรับสถิติ |
3 | Undo and Redo สามารถเลิกทำและทำซ้ำสำหรับการดำเนินการทั้งหมด |
4 | Lazy Evaluation ได้รับการออกแบบจากพื้นดินเพื่อรองรับชุดภาพขนาดใหญ่ Endrov ใช้การประเมินแบบขี้เกียจซึ่งเป็นแนวคิดที่มีอยู่ในภาษาโปรแกรมการวิจัยเป็นส่วนใหญ่ |
5 | Scripting language รองรับภาษาสคริปต์แบบกราฟิกเช่นเดียวกับการเขียนสคริปต์แบบดั้งเดิม |
6 | Java เขียนด้วยภาษา Java สถาปัตยกรรมปลั๊กอินช่วยให้สามารถขยายได้ง่ายด้วยปลั๊กอิน Java ใหม่ มันสามารถโต้ตอบกับ Matlab |
7 | Formats เข้าถึงรูปแบบไฟล์เชิงพาณิชย์และแบบเปิดเกือบทั้งหมดโดยใช้รูปแบบไบโอ |
8 | Microscopic Processing สามารถควบคุมกล้องจุลทรรศน์ทั้งหมดของคุณด้วยโปรแกรมเดียวและทำการวิเคราะห์ภาพได้ทันที |
LEADTOOLS
LEADTOOLS มีฟังก์ชันการประมวลผลภาพมากกว่า 200 รายการในหลายประเภทรวมถึงการล้างเอกสารการปรับปรุงภาพทางการแพทย์การแปลงสีและการแก้ไขการลดจุดรบกวนการตรวจจับขอบและอื่น ๆ
คุณสมบัติพื้นฐานบางประการของ LEADTOOLS มีอธิบายไว้ด้านล่าง -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Scanned Document Image Processing ชุดฟังก์ชันที่มีประสิทธิภาพนี้สามารถอ่านเอกสารที่สแกนของสิ่งประดิษฐ์และความไม่สมบูรณ์เช่นรูที่เจาะมุมเอียงขอบจุดฝุ่นและอื่น ๆ |
2 | Medical Image Processing ปรับปรุงภาพหรือเน้นรายละเอียดโดยการเลื่อนเลือกลบและลบพื้นหลังเพื่อให้ได้ภาพที่ดีขึ้น |
3 | Geometric Transformation ฟังก์ชันเหล่านี้สามารถใช้เพื่อทำความสะอาดจัดแนวแก้ไขภาพหรือใช้เอฟเฟกต์ 3D เชิงศิลปะ |
4 | Brightness and Contrast ฟังก์ชันเหล่านี้สามารถใช้เพื่อปรับปรุงภาพใช้เอฟเฟ็กต์ทางศิลปะหรือช่วยในการประเมินผลการวินิจฉัยภาพทางการแพทย์ |
5 | Color Space Conversion พวกเขาสามารถเพิ่มฟังก์ชันพื้นที่สีของภาพให้กับแอปพลิเคชันเดียวและหลายเธรดรวมถึงแอปพลิเคชันที่โฮสต์ IIS และ Windows WF |
6 | Color Correction ฟังก์ชันเหล่านี้ใช้เพื่อแก้ไขภาพด้วยช่องสีที่สลับปรับสมดุลความเข้มของสีหรือดำเนินการวิเคราะห์ภาพต่างๆ |
7 | Image Enhancement ฟังก์ชันเหล่านี้ใช้เพื่อแก้ไขข้อผิดพลาดทั่วไปในการถ่ายภาพเช่นตาแดงและสีที่ไม่สมดุลรวมทั้งช่วยในการประเมินการวินิจฉัยภาพทางการแพทย์ |
8 | Region of Interest ฟังก์ชันเหล่านี้ใช้เพื่อสร้างและปรับเปลี่ยนพื้นที่ที่สนใจในรูปภาพเพื่อทำหน้าที่ประมวลผลภาพในบางส่วนของรูปภาพประหยัดเวลาในบาร์โค้ดและการจดจำ OCR หรือดำเนินการวิเคราะห์รูปภาพต่างๆ |
OpenCV
OpenCV ได้รับการเผยแพร่ภายใต้ใบอนุญาต BSD และด้วยเหตุนี้จึงฟรีสำหรับการใช้งานเชิงวิชาการและเชิงพาณิชย์ มีอินเตอร์เฟส C ++, C, Python และ Java และรองรับ Windows, Linux, Mac OS, iOS และ Android OpenCV ได้รับการออกแบบมาเพื่อประสิทธิภาพในการคำนวณและเน้นการใช้งานแบบเรียลไทม์ เขียนด้วย C / C ++ ที่ปรับให้เหมาะสมไลบรารีสามารถใช้ประโยชน์จากการประมวลผลแบบมัลติคอร์
คุณสมบัติพื้นฐานบางประการของ OpenCV อธิบายสั้น ๆ -
ซีเนียร์ | คุณลักษณะและคำอธิบาย |
---|---|
1 | Smoothing Images สิ่งนี้เกี่ยวข้องกับการใช้ Blur, GaussianBlur, medianBlur และ bilateral Filter |
2 | Eroding and Dilating สามารถใช้ตัวดำเนินการทางสัณฐานวิทยาที่พบบ่อยสองตัว ได้แก่ การขยายและการพังทลาย |
3 | Morphology Transformations ฟังก์ชัน OpenCV สัณฐานวิทยา Ex เพื่อใช้การเปลี่ยนแปลงทางสัณฐานวิทยาเช่นการเปิดปิด TopHat และ BlackHat เป็นต้น |
4 | Image Pyramids ฟังก์ชัน OpenCV pyrUp และ pyrDown เพื่อลงตัวอย่างหรืออัพตัวอย่างภาพที่กำหนด |
4 | Basic Thresholding Operations ดำเนินการขีด จำกัด พื้นฐานโดยใช้ขีด จำกัด ฟังก์ชัน OpenCV |
5 | Adding borders to your images ฟังก์ชัน OpenCV copyMakeBorder ใช้เพื่อกำหนดเส้นขอบ (ช่องว่างเพิ่มเติมให้กับรูปภาพของคุณ) |
7 | Remapping ใน OpenCV การรีแมปฟังก์ชันนำเสนอการใช้งานการรีแมปที่เรียบง่าย |
8 | Histogram Calculation เพื่อวัตถุประสงค์ง่ายๆ OpenCV ใช้ฟังก์ชัน calcHist ซึ่งจะคำนวณฮิสโตแกรมของชุดอาร์เรย์ (โดยปกติจะเป็นภาพหรือระนาบภาพ) สามารถทำงานได้ถึง 32 มิติ |