การเข้ารหัสการประมวลผลภาพ


12

ฉันสงสัยว่าภาษาใดดีที่สุดสำหรับการประมวลผลภาพ ฉันรู้ว่า MATLAB มีห้องสมุดและชุมชนผู้ใช้ที่ดี ฉันไม่ได้ตรวจสอบมันมีสำหรับหลามเช่นกัน

ภาษาที่มีประสิทธิภาพที่สุดสำหรับสิ่งนี้คืออะไร?

คำตอบ:


12

มันไม่เพียง แต่เกี่ยวกับภาษาการเขียนโปรแกรม แต่ไลบรารีที่คุณใช้อยู่ ฉันสามารถคิดถึงสิ่งต่อไปนี้:

MATLAB - ความสามารถในการประมวลผลภาพค่อนข้างโอเค แต่สำหรับการประมวลผลขั้นสูงและแบบเรียลไทม์มากขึ้นคุณจะต้องใช้บางสิ่งในระดับต่ำ นอกจากนี้มันไม่ได้มีการพกพาที่ดีมาก

Mathematica - ดีสำหรับการสร้างต้นแบบและการสร้างภาพข้อมูลอย่างรวดเร็ว แต่ทั้งหมดนี้เป็นความเห็นที่ต่ำต้อยของฉัน

OpenCV - ฉันคิดว่านี่เป็นห้องสมุดที่ได้รับความนิยมมากที่สุดในชุมชน IP ความสามารถที่ยอดเยี่ยม (การคำนวณ GPU, โมดูลการเรียนรู้ของเครื่อง, GUI - คุณต้องการอะไรอีก ) รวดเร็วและยังอยู่ระหว่างการพัฒนา เกี่ยวกับชุมชน - มันใหญ่มาก! ส่วนใหญ่ใช้สำหรับการเขียนโปรแกรม C / C ++ แต่ Python (อาจเหมาะกับคุณ)

JAI - Java Advanced Imaging - เฉพาะในกรณีที่คุณชอบ Java ส่วนตัวฉันไม่ชอบมัน

ImageMagick - คุณสามารถใช้กับหลายภาษาโปรแกรมตรวจสอบAPI

CxImage - ดีถ้าคุณต้องการสร้างสิ่งที่ดีกว่า MS Paint และด้วยฟังก์ชั่นของ Photoshop

CImg - เห็นได้ชัดว่าใช้กับ C ++ แต่ OpenCV ยังดีกว่า

PIL - ไลบรารีเฉพาะของ Python ที่มีฟังก์ชั่นมากมาย ถ้าคุณชอบคุณก็สามารถมองใกล้ ๆ

SimpleCV - โดยทั่วไปมันเป็นงูเหลือม OpenCV ผูกกับการปรับแต่งบางอย่าง ใช้งานง่ายและมีประสิทธิภาพมาก

scikit-image - เช่นเดียวกับห้องสมุด Python แต่ในความคิดของฉันแย่กว่า SimpleCV (แม้ว่าเพื่อนของฉันจะไม่เห็นด้วยก็ตาม) ข้อดีอย่างหนึ่งคือพวกเขารวมเอาคุณสมบัติของ DAISY ซึ่งเป็นประโยชน์อย่างมากหากคุณต้องการคุณสมบัติที่หนาแน่น

GIL - ส่วนหนึ่งของ Boostแต่ใช้งานได้น้อยกว่า OpenCV แม้ว่าถ้าคุณชอบและใช้ Boost สำหรับฟังก์ชั่นพื้นฐานบางอย่างมันก็โอเค

ResIL - ความต่อเนื่องของโครงการ DevIL ข้อได้เปรียบที่สำคัญคือการทำงานกับไฟล์หลายรูปแบบรวมถึงไฟล์เกมบางไฟล์

PINK - เขียนครั้งแรกใน C ++ ฉันเพิ่งลองและมันก็ดีมากที่ได้ทำงานกับ การรวมที่ยอดเยี่ยมกับ Python และการฝัง C ที่รวดเร็วนอกจากนั้นมีอัลกอริธึมที่ดีมากมาย

เห็นได้ชัดว่ามีไลบรารีการประมวลผลรูปภาพอีกมากมาย แต่เป็นไลบรารีที่ฉันติดต่อด้วย ดังนั้นหากคุณต้องการเริ่มต้นด้วยบางสิ่งให้เลือก OpenCV (โดยเฉพาะกับกรอบ C ++) - คุณจะไม่เสียใจ! ในทางกลับกันหากทักษะการเขียนโปรแกรมของคุณไม่แข็งแรงคุณอาจต้องการใช้ไลบรารี่แบบ Python ซึ่งง่ายต่อการเรียนรู้และตั้งค่า


2

MATLAB เป็นภาษาที่ดีที่สุดสำหรับการเรียนรู้การประมวลผลภาพ (มันเป็นความคิดของฉัน)

มันเป็นเรื่องง่ายที่จะเรียนรู้ฮาร์ดแวร์อิสระมีความยืดหยุ่นมากกว่าภาษาที่รวบรวมอาจมีประสิทธิภาพมากกว่าภาษาสคริปต์ (เนื่องจาก DLLs โดยธรรมชาติของมันเหมาะสำหรับการประมวลผลสัญญาณในระดับเครื่อง) มันมีการสนับสนุนด้านวิชาการและวิศวกรรมที่ดี

C / C ++ เป็นภาษาที่ดีที่สุดสำหรับการสร้างแอปพลิเคชันแบบสแตนด์อโลนของการประมวลผลภาพ ภายใต้ชุด IDE ของคุณคุณอาจสร้างรหัสดั้งเดิมซึ่งมีประสิทธิภาพมากที่สุด และ IDEs สำหรับ C ++ ให้คุณสมบัติการดีบักในระดับที่ดีขึ้น

มีการใช้ภาษาสคริปต์บางภาษา แน่นอนพวกเขามีความยืดหยุ่นพกพาแม้มีประสิทธิภาพมาก แต่การดีบักอาจไม่ง่ายในระดับต่ำ

ความสามารถในการประมวลผล GPU ใหม่ของ CUDA, OpenCL และอื่น ๆ ทำให้การประมวลผลทางคอมพิวเตอร์เพิ่มขึ้นอย่างมาก (อย่างไรก็ตามพวกเขายากที่จะเรียนรู้เนื่องจากคุณควรระวังสถาปัตยกรรมฮาร์ดแวร์ GPU ไปป์ไลน์เพื่อใช้ประโยชน์จากประสิทธิภาพที่เพิ่มขึ้น)


-1

หากคุณต้องการหมุนอัลกอริธึมหรือรหัสของคุณเองให้รวม OpenCL ไว้ด้วยเนื่องจากเมล็ดในการประมวลผลภาพจำนวนมาก "ขนานกันอย่างน่าอับอาย"

หรือสำหรับ Big Iron Fortran ยังคงใช้ภาษาอื่นเป็นส่วนใหญ่ในการแสดงผลเวกเตอร์ที่เป็นตัวเลข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.