Friday, September 30, 2011

OpenCV 2.31 & MinGW (Dev-C++) Part 2

เมื่อจะคอมไพล์ source code เอง ก็ต้องมีเครื่องมือให้พร้อมครับ

เดิมทีผมคิดว่าคงเป็นการยาก ไม่ทำดีกว่า แต่ได้อ่านในคู่มือ http://opencv.willowgarage.com/wiki/MinGW ก็น่าจะทำได้

โปรแกรมที่ต้องการนะครับ
  1. MinGW (gcc) ความจริงตัวนี้ก็มีใน Dev-C++ ครับ แต่ว่าเก่าแล้ว เลยไปดาวน์โหลดตัวใหม่กว่ามา มีให้เลือกหลายที่ครับ ผมใช้ http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip เพราะว่าจะลองทดสอบกับ Qt ด้วยภายหลัง สมมติว่าโหลดมาแล้วและก็แตกไว้ที่ C:\mingw นะครับ ให้เซ็ต path ของ windows ไปที่ C:\mingw\bin ด้วยนะครับ
  2. OpenCV source ก็ได้จากการแตกไฟล์ที่ดาวน์โหลดมาคือ OpenCV-2.3.1-win-superpack.exe ครับ สมมติว่าอยู่ที่ C:\OpenCV231Source
  3. CMake สำหรับสร้าง makefile เพื่อคอมไพล์ครับ จะช่วยให้คนที่ไม่รู้เรื่องในการคอมไพล์เช่นผมทำงานได้ง่ายขึ้นมาก ดาวน์โหลดที่นี่ครับ http://www.cmake.org/files/v2.8/cmake-2.8.5-win32-x86.zip สมมติว่าแตกไว้ที่ C:\CMake
ขั้นตอนต่อไปก็ไปเรียกไฟล์ชื่อ cmake-gui ใน C:\CMake\bin ครับ (ใน win7 ให้ run as admin ด้วยนะครับ)

จากนั้น กำหนดค่าของสองช่องด้านบน
ช่องแรก browse ไปที่ source code ของ OpenCV เช่น C:\OpenCV231Source
ช่องสอง browse ไปที่โฟลเดอร์ใหม่ที่ต้องการเก็บผลลัพธ์ของการคอมไพล์ เช่น C:\OpenCV231

จากนั้นคลิกปุ่ม Configure ครับ เลือกตามรูป

จากนั้นก็ browse เลือกคอมไพเลอร์ครับ
แล้วก็ finish
ในขณะนี้โปรแกรมก็จะทำการตรวจสอบ เช็คค่าพารามิเตอร์ต่างๆครับ
ถ้าเสร็จแล้ว ในช่องข้อความล่างสุดแสดงคำว่า configuring done ก็เป็นอันใช้ได้ครับ จะเกิดแถบสีแดงๆตรงช่องกลางเต็มไปหมด


ในคู่มือบอกว่า ให้กำหนดค่าเพิ่มหนึ่งค่าคือ CMAKE_BUILD_TYPE  ให้เป็น Releaseตามรูปครับ

จากนั้นก็กด Configure อีกครั้ง แถบสีแดงก็จะหายไป
ให้กด Generate ถ้าเสร็จแล้ว ปิด CMake ได้

ไปที่ dos prompt แล้ว เข้าไปที่ไดเรกทอรีผลลัพธ์ เช่น C:\OpenCV231
พิมพ์ mingw32-make แล้วรอๆๆๆๆๆ นานอยู่ครับ

ความจริงถึงขั้นตอนนี้ก็เสร็จแล้วครับ แต่ถ้าอยากได้แค่ตัวหลักๆสำหรับการใช้งาน ให้ใช้ dos prompt ที่ไดเรกทอรีเดิม แล้วพิมพ์ mingw32-make install

จากนั้น จะพบว่าในไดเรกทอรีย่อย install จะมีไฟล์ทุกอย่างพร้อมใช้งานครับ ซึ่งหลักๆก็จะมีไดเรกทอรีย่อย bin, lib, include,doc ซึ่งสามารถแจกจ่ายให้คนที่ไม่ต้องการคอมไพล์เองก็ได้

สมมติว่าเราจะสำเนาทุกๆไฟล์ในไดเรกทอรี install นี้ไปไว้ยัง C:\OpenCV เพื่อใช้งานต่อไปนะครับ

เป็นอันว่าเราได้คอมไพล์และลิงก์ OpenCV สำเร็จ ได้ library ต่างๆที่เราต้องการแล้วครับ

เอกสารอ้างอิง
http://opencv.willowgarage.com/wiki/MinGW
http://www.cmake.org
http://www.mingw.org/

1 comment:

  1. ขอบคุณครับ บทความนี้ดีมากเลย ผมจะติดตามต่อไปครับ

    ReplyDelete