Mac OS X 安裝并測試 OpenCV


我的環(huán)境:OS X Yosemite 10.10.5


1. 安裝

打開官網(wǎng)的Linux安裝OpenCV的網(wǎng)頁,打開這個(gè)網(wǎng)頁的目的不是按照它所提供的步驟安裝OpenCV(因?yàn)槟銜?huì)遇到一個(gè)坑,下文會(huì)提到),而是為了安裝一些依賴的包或庫。

其中的pkg-config、cmake必須安裝,GCC G++就更不用說了,其他的能裝上就裝。
安裝方法,這里使用Homebrew。如果你電腦沒有安裝Homebrew,建議安裝,方法參考官網(wǎng)。
使用方法很簡單:比如要安裝cmake,先search一下:

sudo brew search cmake

根據(jù)反饋看看有沒有這個(gè)包,包名有沒有寫錯(cuò)。都沒有問題的話使用以下命令安裝:

sudo brew install cmake

好,以上能安裝的包都裝完之后。開始安裝opencv

sudo brew tap homebrew/science
sudo brew install opencv

安裝完成之后,在目錄/usr/local/Cellar就會(huì)出現(xiàn)一個(gè)文件夾opencv?,F(xiàn)在配置環(huán)境變量,之前我們不是安裝了pkg-config,現(xiàn)在用到了:打開.bash_profile,加入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/Cellar/opencv/2.4.12/lib/pkgconfig
export PKG_CONFIG_PATH

export LD_LIBRARY_PATH=/usr/local/Cellar/opencv/2.4.12/bin:SLD_LIBRARY_PATH
export PATH=${PATH}:/usr/local/Cellar/opencv/2.4.12/lib

保存關(guān)閉,然后終端執(zhí)行命令【source .bash_profile】使之生效。
在打開另!一!個(gè)!終端窗口,輸入命令:

pkg-config --libs opencv
pkg-config --cflags opencv

如果結(jié)果如下圖所示,那么就配置成功了。

配置opencv路徑

2. 測試

恩,寫個(gè)小例子測試一下。
新建文件夾test,文件夾內(nèi)創(chuàng)建文件test.cpp,代碼:

#include </usr/local/Cellar/opencv/2.4.12/include/opencv2/opencv.hpp>
#include </usr/local/Cellar/opencv/2.4.12/include/opencv2/highgui/highgui.hpp>
using namespace cv;

int main(int argc, char** argv)
{   
    // Load an image from file - change this based on your image name
    Mat img = imread("image.jpg", CV_LOAD_IMAGE_UNCHANGED);

    if(img.empty())
    {
        fprintf(stderr, "failed to load input image\n");
        return -1;
    }

    // this is just to show, that you won't have to pre-alloc
    // result-images with c++ any more..
    Mat gray;
    cvtColor(img,gray,CV_BGR2GRAY);

    // Write the image to a file with a different name,
    // using a different image format -- .png instead of .jpg
    if( ! imwrite("image_copy.png", img) )
    {
        fprintf(stderr, "failed to write image file\n");
    }

    imshow("Display Image", img);
    waitKey(0);

    // no need to release anything with c++ !   
    return 0;
}

然后新建文件makefile,寫入:

test:test.cpp
    g++ -o test test.cpp `pkg-config --libs opencv` `pkg-config --cflags opencv` 

clean:
    rm test

一定注意,第二行打頭是一個(gè)tab,空!格!不!行!
好,根據(jù)代碼中寫的拷一張圖片進(jìn)來,名字image.jpg。
然后終端執(zhí)行【make】,此時(shí)會(huì)生成一個(gè)文件test,然后終端再執(zhí)行【./test】。好,一張圖片的窗口就彈出來了:

image_copy.png

這樣,opencv你就可以自由的使用了。

3. 所謂的坑

按照官網(wǎng)的執(zhí)行步驟:

git clone https://github.com/Itseez/opencv.git
cd ~/opencv
mkdir release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

到這,編譯過程中會(huì)下載一個(gè)文件叫ippicv_macosx_20141027.tgz,但是下載完畢之后報(bào)錯(cuò)說文件的HASH值與期望的不匹配,然后就編譯失敗了。見圖:

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

查了下,有人說可以自己下載然后替換,好,我也下載了一個(gè),分享出來吧(ippicv_macosx_20141027.tgz),然后我替換了,重新執(zhí)行命令進(jìn)行編譯,但是到這一步的時(shí)候,它還是自己去下載這個(gè)文件,根本不會(huì)檢測本地存不存在!至少在我這是這樣的,那還怎么替換???醉了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容