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

 libopencv-dev

opencv_install

Ref: http://karytech.blogspot.com/2012/05/opencv-24-on-ubuntu-1204.html

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

$ pkg-config opencv --cflags

(output will come as)
-I/usr/include/opencv

$ 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 */
#include

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

	if(argv[1] != 0)
		img = cvLoadImage(argv[1], 0); // 1 for color
	else
		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
		cvDestroyWindow("Display");
	}
	else
		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

eclipse-juno-cpp

OpenCV-2.1.0 using CMake and Visual C++ 2010

Test on Windows7 SP1 32-bit

Pre-Requisites

ขั้นตอนการคอมไพล์ 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 OpenCV-2.1.0-win.zip
  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
      opencv_cmake02
  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)
    opencv_cmake10
  • Start -> Programs -> Microsoft Visual Studio 2010 -> Microsoft Visual C++ 2010
    • File -> New -> Project
    • Name: ‘OpenCV_Helloworld‘…’OK’…’Finish’
      opencv_cmake11

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;’
    opencv_cmake12
  • Linker -> Input -> Additional Dependencies…add: ‘cv210d.lib;cxcore210d.lib;highgui210d.lib;
    opencv_cmake13
  • copy image test to project directory
    opencv_cmake14
#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");
    cvNamedWindow("Image:",1);
    cvShowImage("image:",img);

    cvWaitKey();
    cvDestroyWindow("Image:");
    cvReleaseImage(&img);

    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;‘ http://opencv-users.1802565.n2.nabble.com/Application-failed-to-start-correctly-0xc0150002-td4107823.html

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”

http://stackoverflow.com/questions/4813975/why-is-visual-studio-2010-not-able-to-find-open-pdb-files

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

‘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).

ยังไม่รู้ว่าแก้ยังไง

 

Imagelab

Imagelab
http://imagelab.ing.unimore.it/imagelab/labeling.asp
(Image Database) MIR FLICKR Download (25,000)
(Image Database) The USC-SIPI Image Database
(Image Database) http://www.cs.cmu.edu/~cil/v-images.html
(Image Database) http://code.google.com/p/tesseract-ocr/ 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