Google Code Prettify

顯示具有 opencv 標籤的文章。 顯示所有文章
顯示具有 opencv 標籤的文章。 顯示所有文章

2014年3月17日 星期一

OpenCV 2.4.8 + mac Xcode 5.1 安裝教學



這次更新成OpenCV 2.4.8,發現跟之前的 OpenCV 2.4.6 + mac Xcode 4.6 安裝教學 

安裝方法幾乎99%一樣,這次使用的Mac air是最近才換的,Xcode首灌就獻給這篇了XD



安裝環境:

MAC OSX 10.9

OpenCV 2.4.8

Xcode 5.1



1.下載opencv: http://opencv.org/

右邊有一個opencv for linux/mac

點下去就會自動下載了


2.安裝homebrew: http://brew.sh/

這是一個很好用的mac安裝許多程式的軟體

只要在終端機上輸入

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

就會自動下載安裝了

終端機可以在下圖找到






















3.安裝cmake:  http://www.cmake.org/

在終端機輸入

brew install cmake

就會自動下載安裝了


4.安裝Xcode:

直接去App Store 下載安裝,Xcode是免費的

安裝完後 進入Xcode的 preference 裡面的download

下載 command line tool



5.安裝opencv:

將下載回來的opencv壓縮檔解壓縮會跑出資料夾

使用終端機進入解壓縮後的資料夾

比較不熟linux指令的人

可以先用在終端機輸入 =>  ls   ,看現在位置的資料夾

再終端機依序輸入       => cd  資料夾名稱     ,進入壓縮的資料夾中

可以在終端機輸入       => pwd   ,確認當前位置

接著依序輸入

mkdir release

cd release

cmake -G "Unix Makefiles" ..

make

sudo make install



依序完成以上步驟就全都安裝好囉

接下來是新建opencv project



6.建立opencv project:

開啟Xcode 建立專案























建立名稱後 下面type選擇 c++



建立後到build setting -> All

build options -> compiler for c/c++...

選擇LLVM GCC 4.2   我這次在5.1版不需更改就能compiler 成功



到search paths中設定路徑

library search paths 中 輸入 /usr/local/lib

















header search paths 中輸入 /usr/local/include   /usr/local/include/opencv


















7.include lib:

在專案名稱上面按右鍵

選擇add files to.....
























進入後直接按下 /   就會跳出go to the folder 再輸入  /usr/local/lib




























接著把所有的有xxx.2.4.8.dylib檔案都加進去



以上所有環境都設定好囉

可以開始試試看程式了!!!



8.final test:


貼上以下code

//
//  main.cpp
//  tutorial_opencv2.4.8
//
//  Created by Vince on 2014/3/17.
//  Copyright (c) 2014年 vince. All rights reserved.
//


#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"


using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
    cv::Mat src;
    
    src=cv::imread("/Users/Vince/Documents/MyPictures/apple logo.jpeg", -1);
    
    //上面的路徑為圖片路徑
    
    cv::imshow("show image",src);  //這邊會show圖出來
    
    cv::waitKey(0);
    
    return 0;
}


如果看得到圖片就大功告成囉~~





    

2013年11月20日 星期三

OpenCV 2.4.7 Webcam Capture


OpenCV2.4.6在MAC OS下自己實測過開啓webcam,感覺無法使用,

於是在OpenCV 2.4.7 一安裝完後,馬上就來實際測試一下,

結果可以順利截取影像囉XD


編譯環境為:

mac lion mountain 10.8

opencv 2.4.7

Xcode 4.6(在這邊基本上相容visual c++)


Code:

//Created by vince 
//Copyright (c) 2013年 vince. All rights reserved.

#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main()
{
    Mat image;
    
    VideoCapture cap;      //capture的宣告
    cap.open(0);           //0 為預設camera
    
    while(cap.isOpened())  //確認camera能開啓
    {
        cap>>image;        //截取影像到image裡方法1
        //cap.read(image); //截取影像到image裡方法2
        //以上兩種方法都可以用,實測過沒問題!
        
        imshow("Webcam live", image);
        
        waitKey(33);//避免CPU負荷,給點delay時間
                    //實際上一般webcam的framerate差不多33ms
    }
    
    return 0;
}

OpenCV 2.4.7 + mac Xcode 4.6 安裝教學


在安裝完 OpenCV 2.4.7 windows 版後,

馬上就來實驗看看MAC的OpenCV 2.4.7版有沒有什麼不一樣,

發現安裝方式跟OpenCV2.4.6完全一樣喔

需要安裝的人可以參考我這篇:OpenCV 2.4.6 + mac Xcode 4.6 安裝教學


如果安裝上有什麼問題可以再寫信問我,畢竟我也曾經花超久時間再安裝上面過XD

2013年11月19日 星期二

OpenCV 2.4.7 + visual studio 2012 安裝教學


OpenCV 2.4.7 在上禮拜更新了,當然馬上就下載來安裝看看有沒有問題囉!

實際測試的安裝方式與OpenCV 2.4.6 的安裝方法一樣,

所以可以直接參考這篇囉 : OpenCV 2.4.6 + visual studio 2012 安裝教學


編譯環境:

windows7 32bit

opencv 2.4.7

visual studio 2012 express


這次有用mac air 在 bootcamp 下安裝windows7 64bit版本,發現會有link error的問題,

這個問題等解決的再來PO分享!


這次的資料夾結構與2.4.6有稍微的不一樣,變得簡潔多了,

一樣只要用到 build 資料夾內的資料而已,






其他的步驟就接參考這篇吧 :  OpenCV 2.4.6 + visual studio 2012 安裝教學

2013年10月29日 星期二

OpenCV 2.4.6 + visual studio 2012 安裝教學



安裝環境:

windows7 32bit

visual studio 2012 express



1.下載opencv: http://opencv.org/



2.會用到的資料夾:

解壓縮下載回來的opencv壓縮檔

你會用到的安裝設定檔都放在 build 這個資料夾裡




























include檔在 include資料夾內

linker 的lib檔 在x64(64位元) 和 x86(32位元) 資料夾內



























linker 的lib檔在lib資料夾內

環境變數要設定的path在bin資料夾內























3.開始設定環境

開啓主控台應用程式































在專案按下屬性(property)

記得在組態上選擇 debug release

一般我會建議使用release


C/C++   ->   一般(general)   ->   include 目錄

include 以下三個資料夾的位置:

略.../build/include/

略.../build/include/opencv/

略.../build/include/opencv2










連結器(linker)  

連結器  ->  一般  -> 其他程式庫目錄

依你要編譯的位元

選擇以下資料夾路徑:

32bit:  

略.../build/x86/vc10/lib/

64bit:  

略.../build/x64/vc10/lib/



連結器  ->  輸入(input)  ->  其它相依性

加入 lib 資料夾內的 lib 名稱:

裡面有很多lib可以使用,這裡先放比較常用的,有需要可以自行增加

debug:

opencv_calib3d246d.lib
opencv_core246d.lib
opencv_contrib246d.lib
opencv_features2d246d.lib
opencv_highgui246d.lib
opencv_imgproc246d.lib

release:

opencv_calib3d246.lib
opencv_core246.lib
opencv_contrib246.lib
opencv_features2d246.lib
opencv_highgui246.lib
opencv_imgproc246.lib




環境變數設定

在我的電腦  ->  系統內容   ->  進階  -> Path

加入兩個資料夾位置: (路徑用分號 ; 分開)

32bit:  

略.../build/x86/vc10/bin/

64bit:  

略.../build/x64/vc10/bin/


設定到這邊就完成設定囉XD!



4.開始編譯
// opencv_setup_turtorial.cpp : 定義主控台應用程式的進入點。
//

#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main(int argc, _TCHAR* argv[])
{
    Mat src;                     //宣告MAT
    src = imread("lena.jpg");    //讀取圖片
    imshow("result",src);        //SHOW圖片
    waitKey();                   //要輸入才能看見圖片顯示
    return 0;
}



執行編譯後,記得把圖片放到exe的資料夾中

接著執行程式,如果看得到圖片就大功告成囉!!



2013年10月22日 星期二

OpenCV overlay string 在圖片上寫字



我們在處理圖片時,有時候想在在圖片上嵌入文字,

這在OPENCV裡面已經都包成一行式子了,非常方便

以下就是各種文字風格的展現:

code:

//
//  opencv 2.4.6 Extract Color
//
//  Created by vince on 13/10/22.
//  Copyright (c) 2013年 vince. All rights reserved.
//
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include 

using namespace cv;
using namespace std;

int main()
{
    Mat src;
    //原圖片
    
    cv::Scalar c = cv::Scalar(0,255,0);
    //要寫在圖片上的文字顏色 依序為 (B, G, R)
    
    src=imread("/Users/mac/Documents/MyCode/OpenCV/apple.jpg");
    //讀取圖片
    
    putText(src,"COMPLEX" ,      Point(20,40),  FONT_HERSHEY_COMPLEX ,       1,c);
    putText(src,"COMPLEX_SMALL" ,Point(20,80),  FONT_HERSHEY_COMPLEX_SMALL , 1,c);
    putText(src,"DUPLEX"   ,     Point(20,120), FONT_HERSHEY_DUPLEX ,        1,c);
    putText(src,"PLAIN"   ,      Point(20,160), FONT_HERSHEY_PLAIN ,         1,c);
    putText(src,"SCRIPT_COMPLEX",Point(20,200), FONT_HERSHEY_SCRIPT_COMPLEX ,1,c);
    putText(src,"SCRIPT_SIMPLEX",Point(20,240), FONT_HERSHEY_SCRIPT_SIMPLEX ,1,c);
    putText(src,"SIMPLEX" ,      Point(20,280), FONT_HERSHEY_SIMPLEX ,       1,c);
    putText(src,"TRIPLEX" ,      Point(20,320), FONT_HERSHEY_TRIPLEX ,       1,c);
    //     圖片 要寫的文字,記得""  文字要寫的位置,左上(0,0)  文字風格         放大倍率 顏色
      
    imshow("my text",src);//show圖片

    waitKey();
}


2013年9月30日 星期一

OpenCV Extract colors 用HSV空間 分離顏色



從RGB轉到HSV空間中得到:

H:色相      0~360度
S:飽和度   0~1
V:明度      (黑)0~1(白)

在顏色分明的情況時,色相(H)可以很容易地將顏色分離出來


OpenCV也很棒的有RGB轉HSV現成的函式可以使用

不過要注意的是

在U8中,最大值只有255,因此OpenCV有做了調整

H:0~180   H/2
S:0~255   S*255
V:0~255   V*255


編譯環境為:

mac lion mountain 10.8

opencv 2.4.6

Xcode 4.6(在這邊基本上相容visual c++)


下面是code:
//
//  opencv 2.4.6 Extract Color
//
//  Created by vince on 13/9/30.
//  Copyright (c) 2013年 vince. All rights reserved.
//
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include 
#include 

using namespace cv;
using namespace std;

int main()
{
    Mat src; //原圖片
    Mat hsv; //轉到hsv平面
    Mat dst; //結果圖片
    Mat r,r2,g,b; //各顏色的閥值
    
    //在hsv空間中 紅255介於 0度和360度交接處(想像成本初經線) 因此宣告r和r2確保不會少掉部分的紅色
    
    src=imread("/Users/mac/Documents/MyCode/OpenCV/opencv 2.4.6 test/opencv 2.4.6 test/color.bmp");
    
    Mat mask=Mat::zeros(src.rows,src.cols, CV_8U); //為了濾掉其他顏色
    
    cvtColor(src,hsv,CV_BGR2HSV);//轉成hsv平面
    
    inRange(hsv,Scalar(0,100,120) , Scalar(10,255,255), r);                
    //二值化:h值介於0~10 & s值介於100~255 & v值介於120~255
    inRange(hsv,Scalar(170,100,120) , Scalar(180,255,255), r2);            
    //二值化:h值介於170~180 & s值介於100~255 & v值介於120~255
    inRange(hsv,Scalar(50,100,120) ,Scalar(70,255,255), g);                
    //二值化:h值介於50~70 & s值介於100~255 & v值介於120~255
    inRange(hsv,Scalar(110,100,120) , Scalar(130,255,255), b);             
    //二值化:h值介於110~130 & s值介於100~255 & v值介於120~255
    
    mask=r+r2+g+b;//全部的二值化圖累加起來就變成遮罩
    
    src.copyTo(dst,mask ); //將原圖片經由遮罩過濾後,得到結果dst
    
    imshow("b",b);//show b
    imshow("mask",mask);//show mask
    imshow("src",src);//show原圖片
    imshow("result",dst);//show結果
    
    waitKey();
}
結果如下圖:





























HSV空間:參考 HSV wiki定義



2013年9月12日 星期四

OpenCV 2.4.6 + mac Xcode 4.6 安裝教學


前一陣子剛換mac,於是打算用mac來跑opencv,但沒想到安裝起來還滿複雜的,

於是就決定做一個安裝教學,希望可以幫助想在mac上跑opencv的各位



安裝環境:

mac lion mountain 10.8

opencv 2.4.6

Xcode 4.6



1.下載opencv: http://opencv.org/

右邊有一個opencv for linux/mac

點下去就會自動下載了


2.安裝homebrew: http://brew.sh/

這是一個很好用的mac安裝許多程式的軟體

只要在終端機上輸入

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

就會自動下載安裝了

終端機可以在下圖找到





















3.安裝cmake:  http://www.cmake.org/

在終端機輸入

brew install cmake

就會自動下載安裝了


4.安裝Xcode:

直接去App Store 下載安裝,Xcode是免費的

安裝完後 進入Xcode的 preference 裡面的download

下載 command line tool



5.安裝opencv:

將下載回來的opencv壓縮檔解壓縮會跑出資料夾

使用終端機進入解壓縮後的資料夾

比較不熟linux指令的人

可以先用在終端機輸入 =>  ls   ,看現在位置的資料夾

再終端機依序輸入       => cd  資料夾名稱     ,進入壓縮的資料夾中

可以在終端機輸入       => pwd   ,確認當前位置

接著依序輸入

mkdir release

cd release

cmake -G "Unix Makefiles" ..

make

sudo make install



依序完成以上步驟就全都安裝好囉

接下來是新建opencv project



6.建立opencv project:

開啟Xcode 建立專案























建立名稱後 下面type選擇 c++

建立後到build setting中

build options -> compiler for c/c++...

選擇LLVM GCC 4.2




















到search paths中設定路徑

library search paths 中 輸入 /usr/local/lib

















header search paths 中輸入 /usr/local/include   /usr/local/include/opencv


















7.include lib:

在專案名稱上面按右鍵

選擇add files to.....
























進入後直接按下 /   就會跳出go to the folder 再輸入  /usr/local/lib




























接著把所有的opencv2.4.6檔案都加進去(因為我以前有安裝過2.4.3 所以有2.4.3的文件)





























以上所有環境都設定好囉

可以開始試試看程式了!!!



8.final test:


貼上以下code

//  Created by vince on 2013.
//  Copyright (c) 2013年 vince. All rights reserved.

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"


using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
    cv::Mat src;
    
    src=cv::imread("/Users/mac/Documents/MyCode/biglena.bmp", -1);

    //上面的路徑為圖片路徑

    cv::imshow("show image",src);  //這邊會show圖出來

    cv::waitKey(0);

    return 0;
}





以上如果看得到圖片就大功告成囉~~