was successfully added to your cart.

วิธีการติดตั้ง OpenCv บน Ubuntu และใช้ร่วมกับ Qt

By May 11, 2012General

!!! Waring บทความนี้ทำตอนปลายปีที่แล้วทำให้่ซอฟแวร์บางตัวไม่อัพเดตนะครับการทำตามขอให้เปลี่ยนเป็นเวอร์ชั่นใหม่ๆทั้งหมดจะดีกว่าครับ

OpenCv & Computer Vision

ในปัจจุบัน Computer Vision ถือว่าเข้ามามีบทบาทในชีวิตประจำวันและ ในทางอุตสาหกรรมอย่างเลี่ยงไม่ได้ ตัวอย่างในการนำ Computer Vision ไปใช้ในปัจจุบันสามารถพบเห็นได้หลายหลายเช่น ระบบตรวจจับใบหน้า (face detection) ระบบจดจำใบหน้า (face recognize) ระบบการมองเห็นของหุ่นยนต์หรือเครื่องตรวจสอบอุปกรณ์วงจรรวม ในโรงงาน หรือแม้แต่บนสมาร์ทโฟนเป็นต้น

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

ไลบรารี่สำหรับการพัฒนาระบบ Computer Vision ถือว่ามีอยู่เยอะมากทั้งแบบที่ต้องซื้อ และแบบ OpenSource ในบทความนี้ จะนำเสนอวิธีเริ่มต้นการใช้ไลบรารี่ ชนิดหนึ่งในการพัฒนาระบบ computer vision ซึ่งก็คือ OpenCv

OpenCv คืออะไร

OpenCv เป็นซอฟแวร์ Open Source สำหรับ Computer vision library ภายในไลบรารี่ของ OpenCv จะถูกพัฒนาขึ้นมาจาก ภาษา C และ C++ OpenCv สามารถรันซอฟแวร์ภายใต้ระบบปฎิบัติการ Linux , Window หรือ MAC OsX และสามารถพัฒนาแอพพลิเคชั่นจาก OpenCv โดยการใช้ ภาษาอื่นที่ไม่ใช่ C หรือ C++ เช่น Python, Ruby, MATLAB หรือภาษาอื่นๆ ได้

Environment ในการพัฒนา

จากที่แนะนำมาว่า OpenCv สามารถรันได้ เกือบทุกระบบปฏิบัติการโดยสามารถโดยท่านสามารถเลือกระบบปฏิบัติการที่เหมาะสมกับงานของท่านได้เลย เช่นระบบปฏิบัติการ Window หรือว่า Linux

ใน บทความนี้จะขอนำเสนอการติดตั้งทั้ง ไลบรารี่ OpenCv บนระบบปฏิบัติการ Linux

How to Install OpenCv on Ubuntu

โดยระบบปฏิบัติการที่ใช้ทดลองคือ Ubunt 11.04 Lucid โดยท่านสามารถ ดาวโหลดได้จาก เว็บไซต์ http://www.ubuntu.com/ โดยตรงโดยในบทความนี้จะไม่ขอพูดถึงวิธีการติดตั้ง ระบบปฏิบัติการ Ubuntu นะครับ ท่านที่สนใจการติดตั้ง Ubuntu นี้สามารถทำได้โดยไม่ยากครับ

ในการติดตั้งจำเป็นต้องใช้ internet ในการดาวน์โหลดแพกเกตต่างๆ ขอให้ตรวจสอบการเชื่อมต่อ internet ก่อนติดตั้งด้วยนะครับ

  1. Open Terminal: Applications->Accessories->Terminal
  2. ติดตั้ง Cmake และ Requirements อื่นๆ ที่จำเป็นต้องใช้ในการติดตั้ง OpenCv

$ sudo aptget update
$ sudo aptget install buildessential cmake libgtk2.0dev libtiff4dev libjasperdev libavformatdev libswscaledev libavcodecdev libjpeg62dev

  1. ดาวน์โหลด OpenCv Library โดยในตัวอย่างนี้ใช้ 2.3 

$ cd Downloads
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/OpenCV-2.3.0.tar.bz2

  1. Unpack Archive โฟลเดอร์ที่ได้ดาวน์โหลดเพื่อใช้ในการติดตั้ง

$ tar xvf OpenCV2.3.0.tar.bz2
$ cd OpenCV2.3.0/

  1. สร้างโฟลเดอร์ขึ้นมาใหม่โดยไฟล์ที่ถูกสร้างขึ้นมาจาก Cmake จะถูกเก็บในโฟลเดอร์นี้

$ mkdir release
$ cd release

  1. ใช้ Cmake ในการสร้าง make file ขึ้นมา

$ cmake D CMAKE_BUILD_TYPE=RELEASE D CMAKE_INSTALL_PREFIX=/usr/local..

  1. คอมไพล์และติดตั้ง OpenCv

$ sudo make install

  1. ทำการกำหนด PATH ให้กับระบบไปที่ OpenCv ที่ติดตั้งโดยใน <PATH> คือ path ที่ใช้ในการติดตั้งบนเครื่องของท่านเอง

$ export LD_LIBRARY_PATH=<PATH>/OpenCV2.3.0/release/lib:$LD_LIBRARY_PATH

$ sudo ldconfig

เมื่อถึงขั้นตอนนี้ท่านสามารถติดตั้งระบบ OpenCv ลงบนระบบปฏิบัติการ Ubuntu ได้เสร็จแล้ว

 

How to Install Qt

ในการพัฒนาระบบด้วยการใช้ OpenCv Library ท่านสามารถเลือกใช้ Editor ตัวไหนก็ได้ในการพัฒนาที่สามารถทำการเลือกไปที่ PATH ของ OpenCv ได้แต่ในการ เลือก Tool ในการพัฒนาขอให้คิดถึง Application ที่จะทำการพัฒนาด้วยเช่น ทาง Window เลือกใช้ Visual Studio เนื่องจากมีเครื่องมือในการอำนวยความสะดวกที่หลากหลายและสามารถทำให้ OpenCv ของท่านเชื่อมต่อกับไลบรารี่ต่างๆของ Microsoft ได้โดนง่าย

บทความนี้จะขอนำเสนอ tool ในการพัฒนาควบคู่กับ OpenCv คือ Qt โดยท่านสามารถศึกษาความสามารถเพิ่มเติมและทำการ ดาวน์โหลด ได้จาก http://qt.nokia.com/downloads

ในการดาวน์โหลด จะมีทั้งแบบ offline และ online ท่านสามารถเลือกดาวน์โหลดตัวไดตัวหนึ่งได้เลยครับเมื่อดาวโหลดมาแล้ววิธีการติดตั้ง Qt ก็ขอให้ทำการรัน ตัว Installer ด้วยคำสั่ง ./Qt_SDK_Lin32_offline_v1_1_2_en.run ได้เลย

 

หลังจากนั้นให้ท่านทำการกด Next และทำการติดตั้งตามปกติ

Add OpenCv lib to Qt Creator

ขอให้ท่านสร้างโปรเจคจาก Qt ขึ้นมาแล้วเลือกไปที่ .PRO เพื่อทำการใส่ PATH LIB ของ OpenCv ดังนี้

LIBS +=lopencv_core lopencv_imgproc lopencv_highgui lopencv_ml lopencv_video lopencv_features2d lopencv_calib3d lopencv_objdetect lopencv_contrib lopencv_legacy lopencv_flann

หลังจากนั้นให้ท่านทดลอง

#include<opencv/cv.h>
#include<opencv/highgui.h>

ลงไปใน source file ของท่านถ้า QT ไม่มีการแจ้งเตือนว่าไม่พบและสามารถทำการคอมไพล์ได้(สามารถทดสอบได้จากโปรแกรมแรกของบทความ) ก็ถือว่าท่านทำการติดตั้งสำเร็จแล้ว 

First Program Display Image

หลังจากที่ได้ Intsall OpenCv และจัดเตรียม Environment ของท่านแล้วขั้นตอนต่อมาจะเป็นการทดสอบโปรแกรมและทำความเข้าใจเรื่องพื้นฐานการทำงานของไลบรารี่

OpenCv ได้ทำการจัดเตรียม Library ในการอ่านค่าจากรูปภาพหรือว่า Video โดยการในการแสดงผลจะใช้ toolkits ที่รวมเข้ามาใน OpenCv ซึ่งก็คือ high gui ในการแสดงผล ในโปรแกรมแรกเราจะทำการ เขียนโปรแกรมเพื่อเปิด รูปภาพและแสดงบน screen ของ highgui toolkits ของ OpenCv

#include<opencv/cv.h>

#include<opencv/highgui.h>

int main( int argc, char** argv ) {

IplImage* img = cvLoadImage( “linux.jpg” );

cvNamedWindow(“OpenCv 1”, CV_WINDOW_AUTOSIZE );

cvShowImage(“OpenCv 1”, img);

cvWaitKey(0);

cvReleaseImage(&img);

cvDestroyWindow(“OpenCv 1”);

}

เมื่อทำการ รันโปรแกรมโปรแกรมจะทำการโหลดรูป linux.jpg ที่อยู่ในไดเรคทอรี่เดียวกันเข้าไปไว้ใน memory แล้วแสดงผลลงบนหน้าจอ หลังจากนั้นจะรอผู้ใช้ทำการกด key แล้วจึงจบโปรแกรม

Join the discussion 7 Comments

  • ทิพย์ says:

    $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local.. มีปัญหาทำต่อไม่ได้
    /usr/local.. ไม่รู้ต้องพิมพ์อะไรต่อค่ะ รบกวนตอบกลับด้วยขอบคุณค่ะ

  • Nop says:

    ต้องใช้อันนี้ครับ

    $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    • tarm says:

      คำสั่งนี้พอใช้แล้วมันขึ้น error ครับ
      มันฟ้องว่า Parse error incommand line argument: -D
      should be: VAR type=value
      CMake Error: No camke script provided.
      Cmake Error: Problem processing arguments. aborting.

      แก้ยังไงดีครับ

      • tarm says:

        ต้องขอโทษด้วยนะครับ ข้างบนผมผิดเอง
        จริงๆแล้ว error ฟ้องว่า

        CMake Error: The source directory “/home/ชื่อuser” does not appear to contain CMakelists.txt

        แก้ยังไงดีครับ

  • ภรณ์ธวัช says:

    ผมแอด path ไม่ได้นะครับใช้ openCv2.4.1

    INCLUDEPATH += /home/win/Downloads/OpenCV-2.4.1/include/opencv
    INCLUDEPATH += /home/win/Downloads/OpenCV-2.4.1/include/opencv2
    LIBS += -L/usr/local/lib

    LIBS +=-lopencv_calib3d
    LIBS +=-lopencv_contrib
    LIBS +=-lopencv_core
    LIBS +=-lopencv_features2d
    LIBS +=-lopencv_flann
    LIBS +=-lopencv_gpu
    LIBS +=-lopencv_highgui
    LIBS +=-lopencv_imgproc
    LIBS +=-lopencv_legacy
    LIBS +=-lopencv_ml
    LIBS +=-lopencv_nonfree
    LIBS +=-lopencv_objdetect
    LIBS +=-lopencv_photo
    LIBS +=-lopencv_stitching
    LIBS +=-lopencv_ts
    LIBS +=-lopencv_video
    LIBS +=-lopencv_videostab

    SOURCES += \
    main.cpp
    มันคอมไฟล์ไม่ได้ครับ
    error อย่างนี้ครับ
    21:53:18: Running build steps for project project…
    21:53:18: Configuration unchanged, skipping qmake step.
    21:53:18: Starting: “/usr/bin/make” -w
    make: Entering directory `/opt/QtSDK/project-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Release’
    g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../Desktop/Qt/4.8.1/gcc/mkspecs/linux-g++ -I../project -I../Desktop/Qt/4.8.1/gcc/include/QtCore -I../Desktop/Qt/4.8.1/gcc/include/QtGui -I../Desktop/Qt/4.8.1/gcc/include -I/home/win/Downloads/OpenCV-2.4.1/include/opencv -I/home/win/Downloads/OpenCV-2.4.1/include/opencv2 -I. -I../project -I. -o main.o ../project/main.cpp
    ../project/main.cpp:8:1: error: stray ‘\342’ in program

  • ภรณ์ธวัช says:

    ที่อยู่ไฟล์ครับ
    usr>local>lib จะมีไฟล์นี้ครับ
    libopencv_calib3d.so
    libopencv_contrib.so
    libopencv_core.so
    libopencv_features2d.so
    libopencv_flann.so
    libopencv_gpu.so
    libopencv_highgui.so
    libopencv_imgproc.so
    libopencv_legacy.so
    libopencv_ml.so
    libopencv_nonfree.so
    libopencv_objdetect.so
    libopencv_photo.so
    libopencv_stitching.so
    libopencv_video.so
    libopencv_videostab.so

    usr>local>include จะมีไฟล์
    cv.h, cv.hpp, cvaux.h, cvaux.hpp, cvwimage.h, cxcore.h, cxcore.hpp, cxeigen.h, cxmisc.h, highui.h, ml.h

    home/win/Downloads/OpecCV-2.4.1/include/opencv ก็มีไฟล์
    cv.h, cv.hpp, cvaux.h, cvaux.hpp, cvwimage.h, cxcore.h, cxcore.hpp, cxeigen.h, cxmisc.h, highui.h, ml.h

    home/win/Downloads/OpecCV-2.4.1/include/opencv2 จะมี opencv.hpp ครับ

    home/win/Downloads/OpecCV-2.4.1/build/lib ก็มีไฟล์
    libopencv_calib3d.so
    libopencv_contrib.so
    libopencv_core.so
    libopencv_features2d.so
    libopencv_flann.so
    libopencv_gpu.so
    libopencv_highgui.so
    libopencv_imgproc.so
    libopencv_legacy.so
    libopencv_ml.so
    libopencv_nonfree.so
    libopencv_objdetect.so
    libopencv_photo.so
    libopencv_stitching.so
    libopencv_video.so
    libopencv_videostab.so

Leave a Reply

*