Category Archives: OpenCV

เรื่องของการ Compile โปรแกรมที่เรียกใช้ OpenCV

ถ้า compile ด้วยคำสั่งนี้ แล้วไม่ผ่าน

$ g++ -I/usr/include/opencv -lml -lcvaux -lhighgui -lcv -lcxcore  hello.cpp
/tmp/cchzFkVS.o: In function `main':
hello.cpp:(.text+0x45): undefined reference to `cvLoadImage'
hello.cpp:(.text+0x6b): undefined reference to `cvNamedWindow'
hello.cpp:(.text+0x7c): undefined reference to `cvShowImage'
hello.cpp:(.text+0x86): undefined reference to `cvWaitKey'
hello.cpp:(.text+0x90): undefined reference to `cvDestroyWindow'
collect2: ld returned 1 exit status

ให้เปลี่ยนมา compile ด้วยคำสั่งนี้แทน

$ g++ hello.cpp -o hello `pkg-config --cflags --libs opencv`

Installing OpenCV on Ubuntu 12.04 LTS

1. Ubuntu 12.04 provides a package of OpenCV 2.3.1 that you can easily install by typing:

sudo apt-get install libopencv-dev

หรือเรียก Ubuntu Software Center แล้วเลือก package




2. ตรวจสอบ path ต่างๆดังนี้

$ pkg-config opencv --cflags

(output will come as)

$ pkg-config opencv --libs

(output will come as)
-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 



ทดลองทำการบันทึกไฟล์ hello.cpp ไว้ทดสอบ

#include <opencv2/opencv.hpp> /* required to use OpenCV */
#include <highgui/highgui.hpp> /* required to use OpenCV's highgui */

int main(int argc, char *argv[]) {
	IplImage* img=0; /* pointer to an image */

	if(argv[1] != 0)
		img = cvLoadImage(argv[1], 0); // 1 for color
		printf("Enter filename\n");

	if(img != 0) {
		cvNamedWindow("Display", CV_WINDOW_AUTOSIZE); // create a window
		cvShowImage("Display", img); // show image in window
		cvWaitKey(0); // wait until user hits a key
		printf("File not found\n");

	return 0;

ทำการ complie and run

$ g++ -I/usr/include/opencv2  hello.cpp `pkg-config opencv --cflags --libs` 

$ ./a.out img_name

How to config Eclipse 4.2 (Juno )

คลิกขวาที่ Project ที่ต้องการกำหนดค่า

แล้วเพิ่ม /usr/include/opencv2


OpenCV-2.1.0 using CMake and Visual C++ 2010

Test on Windows7 SP1 32-bit


ขั้นตอนการคอมไพล์ OpenCV-2.1.0 ด้วย CMake และ Visual C++ 2010

  1. เตรียม Solution ของ OpenCV 2.1.0 ด้วย CMake
  2. Build OpenCV 2.1.0 Solution ด้วย Visual C++ 2010
  3. สร้างโปรเจ็กส์ HelloWorld บน Visual C++ 2010
    • Configure Project Directories

เตรียม Solution ของ OpenCV 2.1.0 ด้วย CMake

  1. Download
  2. Extract to ‘C:\Program Files\’
  3. Create new folder: ‘C:\Program Files\OpenCV-2.1.0\build
  4. Start -> Programs -> CMake 2.8 -> CMake (cmake-gui).
    • Where is the source code: ‘C:/Program Files/OpenCV-2.1.0/’
    • Where to build the binaries: ‘C:/Program Files/OpenCV-2.1.0/buildopencv_cmake01
  5. Click ‘Configure‘ button
    • Specify the generator for this project: Visual Studio 10
    • select Use default native compilers
  6. Click ‘Configure‘ buttonopencv_cmake03opencv_cmake04
  7. Click ‘Generate‘ buttonopencv_cmake05

Build OpenCV 2.1.0 Solution

Start -> Programs -> Microsoft Visual Studio 2010  -> Microsoft Visual C++ 2010

  • File -> Open -> Project/Solution…’C:\Program Files\OpenCV-2.1.0\build\OpenCV.slnopencv_cmake06
  • After MSVC has finished parsing all of the files (It will say ‘Ready‘ in the bottom left corner): Build -> Build Solutionopencv_cmake07opencv_cmake08
  • After some time, OpenCV should build successfully.opencv_cmake09

สร้างโปรเจ็กส์ HelloWorld

  • To permanantly include necessary .dll files, add ‘C:\Program Files\OpenCV-2.1.0\build\bin\Debug‘ to PATH by visiting Advanced tab in System of Windows. (add to system path manually)
  • Start -> Programs -> Microsoft Visual Studio 2010 -> Microsoft Visual C++ 2010
    • File -> New -> Project
    • Name: ‘OpenCV_Helloworld‘…’OK’…’Finish’

Configure Project Directories

  • Project -> OpenCV_Helloworld Properties…Configuration Properties -> VC++ Directories
  • Include Directories…add: ‘C:\Program Files\OpenCV-2.1.0\include\opencv;’
  • Library Directories…add: ‘C:\Program Files\OpenCV-2.1.0\build\lib\Debug;’
  • Source Directories…add: ‘C:\Program Files\OpenCV-2.1.0\src\cv;C:\Program Files\OpenCV-2.1.0\src\cvaux;C:\Program Files\OpenCV-2.1.0\src\cxcore;C:\Program Files\OpenCV-2.1.0\src\highgui;C:\Program Files\OpenCV-2.1.0\src\ml;’
  • Linker -> Input -> Additional Dependencies…add: ‘cv210d.lib;cxcore210d.lib;highgui210d.lib;
  • copy image test to project directory
#include "stdafx.h"

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[]) {
    IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");


    return 0;

ที่มา: OpenCV-2.1.0 using CMake and Visual C++ 2010 Express on Windows XP SP3 32-bit

ปล. ติดตั้งจาก OpenCV-2.1.0-win32-vs2008.exe (ไม่ได้ใช้ CMake) แล้วกำหนดค่า Proproties ของ Project ตามข้างบนแล้ว แต่เวลา run แล้วเกิด Error ดังนี้ “The application was unable to start correctly (0xc0150002)” ทางแก้คือ เปลี่ยนจาก ‘cv210d.lib;cxcore210d.lib;highgui210d.lib;‘  เป็น ‘cv210.lib;cxcore210.lib;highgui210.lib;‘

Using OpenCV-2.1.0 with MS Visual C++ 2010 on Windows 7

ที่มา: Using OpenCV-2.1.0 with MS Visual C++ 2010 on Windows 7


หลังจากติดตั้งเสร็จ พอรัน helloworld เจอ error ดังนี้

The application was unable to start correctly (0*0150002). Click Ok to close the application.


ไปที่ Project -> Proporties -> Linker-> Input -> Additional Dependencies

จากนั้นเปลี่ยนจาก cv210d.lib; cvaux210d.lib; cxcore210d.lib; highgui210d.lib; ml210d.lib;

เป็น cv210.lib; cvaux210.lib; cxcore210.lib; highgui210.lib; ml210.lib; opencv_ffmpeg210.lib;

ก็จะไม่ error อีก


นอกจาก error แล้ว ยังมีคำเตือนคำเตือนเหล่านี้อีก

‘C:\Windows\SysWOW64\ntdll.dll’, Cannot find or open the PDB file
‘C:\Windows\SysWOW64\kernel32.dll’, Cannot find or open the PDB file
‘C:\Windows\SysWOW64\kernellbase.dll’, Cannot find or open the PDB file


Go to Tools->Options->Debugging->Symbols and select checkbox “Microsoft Symbol Servers”

แต่หลังจากแก้ไข้แล้ว เจอ คำเตือนอันใหม่ดังนี้

‘OpenCV_helloworld.exe’: Loaded ‘C:\OpenCV2.2\bin\opencv_imgproc220d.dll’, Cannot find or open the PDB file
‘OpenCV_helloworld.exe’: Loaded ‘C:\WINDOWS\system32\imm32.dll’, Symbols loaded (source information stripped).




(Image Database) MIR FLICKR Download (25,000)
(Image Database) The USC-SIPI Image Database
(Image Database)
(Image Database) boxtiff-2.01.eng.tar
(Image Database) CMU/VASC Image Database

connected component labeling is

Free eBooks by Project Gutenberg
(Image Database – Request Access) The grayscale FERET Database
(Image Database – Request Access) Face Database