Playing with OpenCV : Getting Started with Visual Studio

By Unknown | วันศุกร์, เมษายน 04, 2557

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

นอกจากความสามารถอันพูดไม่หมดของ OpenCV แล้ว ทางผู้พัฒนายังทำไลบลารีออกมาให้ใช้กับหลากหลายแพลตฟอร์มทั้ง Windows, OSX, Linux, หรือแม้กระทั้งอุปกรณ์พกพาอย่าง Smart Phone ทั้งหลายที่มีสถาปัตยกรรมของซีพียูแตกต่างกันไป อีกทั้งยังรองรับภาษามากมาย เช่น C, C++, C#, Java, Python อีกด้วย

Objective

เนื่องจาก OpenCV เป็นไลบลารีที่ค่อนข้างซับซ้อนและมีขนาดค่อนข้างใหญ่ ซึ่งเราจำเป็นที่จะต้องลิงค์ระหว่างโปรเจคของเรากับไลบลารีของ OpenCV โดยมีคอนเซปต์ก็คือ ถ้าหากเรามีหลาย ๆ โปรเจคที่ต้องใช้ไลบลารีตัวเดียวกัน แทนที่เราจะก็อปปี้ไลบลารีไปไว้ในทุกโปรเจ็ค ซึ่งตอน OS จะมองเสมือนว่าเป็นไลบลารีคนละตัวกัน ดังนั้นเมื่อระบบปฏิบัติการโหลดไลบราลีเข้าหน่วยความจำก็จะโหลดโดยแยกส่วนกัน ถ้าหากมีสามโปรเจคก็โหลดสามครั้งทำให้เปลืองทรัพยากรโดยใช่เหตุ เราจึงต้องทำการลิงค์ไลบลารีเพื่อให้โปรเจคที่เกี่ยวข้องชี้ไปยังไลบลารีตัวเดียวกัน และเป็นการลดภาระของ OS ที่ไม่ต้องโหลดไลบลารีหลายครั้ง ในกรณีที่รันมากกว่าหนึ่งโปรเจค

Prerequisites

  1. OpenCV library for Windows
  2. Any version of Visual Studio (support c++ is needed)

How to ?

Set up Environmental Variable

หลังจากที่โหลดไลบลารีมาแล้วให้แตกไฟล์ไปที่ใดที่หนึ่ง (แนะนำ C:\OpenCV) ให้เข้าไปที่ Advanced System Setting (กดปุ่ม Windows + Pause Break) คลิกที่ Environment Variables... เลือกปุ่ม New ที่ด้านล่างของหน้าต่าง หลังจากนั้นให้ใส่ค่า OPENCV_DIR สำหรับช่อง Variable Name และ path ไปยัง OpenCV ที่เราแตกไฟล์ตอนแรกตามด้วยโฟลเดอร์ build ในที่นี้ให้ใส่ C:\OpenCV\build\ เสร็จแล้วให้กด OK และกลับมาที่หน้าต่าง Environment Variables เลือก Variable ที่ชื่อ PATH หรือ Path หลังจากนั้นให้ใส่ %OPENCV_DIR%\x64\vc12\bin สำหรับ OS 64 บิต หรือ %OPENCV_DIR%\x86\vc12\bin สำหรับ OS 32 บิต

Linking C++ project to OpenCV

หลังจากที่เราสร้างโปรเจ็ค C++ ขึ้นมาแล้ว (ในที่นี้สร้างแบบ Win32 Console Application) ให้เพื่อน ๆ คลิกขวาที่โปรเจคใน Solution Explorer ด้านขวามือแล้วเลือก Properties หลังจากนั้นให้ไปที่โหนด Configuration Properties (ด้านซ้ายมือ) เลือก C/C++ และเลือก General ในช่อง Additional Include Directories ให้ใส่ $(OPENCV_DIR)\include เมื่อใส่ค่าใหม่ลงไปแล้ว ให้ไปที่โหนด Linker เลือก General และให้แก้ค่าในช่อง Additional Library Directories เป็น $(OPENCV_DIR)\x64\vc12\lib เมื่อแก้ไขเรียบร้อยแล้ว ให้ไปที่ Input ภายใต้โหนด Linker เลือก Additional Dependencies คลิกที่ลูกศรขวามือแล้วเลือก Edit หลังจากนั้นให้ใส่ค่าดังต่อไปนี้ลงไปในช่อง textbox บนสุด

Additional Dependencies

opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_ml248d.lib
opencv_nonfree248d.lib
opencv_objdetect248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_videostab248d.lib

เมื่อแก้ไขทุกอย่างเสร็จแล้วให้กด OK แล้งลองรันโปรแกรมนี้ดูครับ ถ้าไม่มีปัญหาอะไร โปรแกรมจะโชว์หน้าต่างเว็บแคมออกมา ลื่นไหลไม่มีสะดุด


แสดงความคิดเห็น