應該很多人會在Linux 安裝 OpenCV的Liberary吧,這也是我第一次玩這個Liberary,其實功能還真的頗強大的說 :)

不過想到Linux 沒有辦法像Windows這樣不斷按 Next 應該很頭痛吧!! 我也不例外 XD

一般來說 Linux 在 OpenCV 的官網會交你怎麼用tarball的方式安裝,我一開始也是這樣,不過後來為瞭解決一些相依問題也搞了很久。

不過後來在Lunchpad找到方便的工具了

https://launchpad.net/~gijzelaar/+archive/opencv2-karmic

1. add repo to apt-get

#sudo add-apt-repository ppa:gijzelaar/opencv2-karmic

2.Install OpenCV Develop kit

#sudo apt-get install libcv-dev libhighgui-dev

基本上這樣安裝完就可以動了(rock)

 

附上測試程式 (這是一個簡單測試圓的程式)

#ifdef _CH_           
#pragma package <opencv>
#endif                  


#define CV_NO_BACKWARD_COMPATIBILITY


#include <cv.h>
#include <highgui.h>
#include <math.h>   
int main(int argc, char** argv)
{                              
    char wndname[] = "circles";
    IplImage* img;             
    if( argc == 2 && (img=cvLoadImage(argv[1], 1))!= 0)
    {                                                  
        IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 );
        CvMemStorage *storage = cvCreateMemStorage(0);         
        cvCvtColor( img , gray , CV_BGR2GRAY );                
        cvSmooth( gray, gray , CV_GAUSSIAN , 13, 13, 0, 0 );   


        CvSeq *circles = cvHoughCircles(gray,
                                        storage,
                                        CV_HOUGH_GRADIENT,
                                        2,                
                                        gray->height/4,   
                                        200,              
                                        100);
        int i;
        for( i = 0 ; i < circles->total; i++ )
        {
            float *p = (float*)cvGetSeqElem(circles,i);
            cvCircle(
                    img,
                    cvPoint( cvRound(p[0]), cvRound(p[1])),
                    3,
                    CV_RGB(0,255,0),
                    -1,
                    8,
                    0);
            cvCircle(
                    img,
                    cvPoint( cvRound(p[0]), cvRound(p[1])),
                    cvRound(p[2]),
                    CV_RGB(255,0,0),
                    3,
                    8,
                    0);


        }


        cvNamedWindow( wndname , 1 );
        cvNamedWindow( "gray" , 1 );
        cvShowImage(  wndname , img );
        cvShowImage(  "gray" , gray );
        // Wait for a key stroke; the same function arranges events processing
        cvWaitKey(0);
        cvReleaseImage(&img);
        cvReleaseImage(&gray);
        cvDestroyWindow(wndname);
    }
    return 0;
}

Makefile

FLAGS=-lcxcore -lcv -lhighgui -lcvaux -lml
INCPATH=-I/usr/include/opencv
LIBPATH=
OPTIONS=-lcxcore -lcv -lhighgui -lcvaux -lml

%:%.c
        g++ $(INCPATH) $(LIBPATH) $(OPTIONS) $^ -o $@

(注意g++前面的空白是 <TAB>字元 不是空白)

Make:

#make <程式名稱>

Run:

#./<程式名稱> <圖檔>

如果沒有圖的話,以下附上幾張圖

S1.jpg 

Image1.jpg

C1.jpg

Hk_money_coins.jpg 

 

如果是高手想要用tarball安裝,可以參考以下連結:

Installing OpenCV 2.0 on Ubuntu 9.10 Karmic Koala

HowTo: Install OpenCV in Ubuntu Karmic (9.10)

創作者介紹

Amin's Note

Aminzai 發表在 痞客邦 PIXNET 留言(0) 人氣()