2012年12月27日 星期四

Visual C++ 2010使用OpenCV的環境設定

在Windows下面使用OpenCV開發程式, 起初的環境設定有一些麻煩, 一開始是使用Code::Blocks.雖然上網搜尋設定後可以成功編譯,但是執行的時候dll檔總是缺東缺西,況且目前的教學幾乎都是使用Visual C++當作Windows開發環境.所以最後還是選擇了使用Visual Studio 2010,以下筆記唯一些環境的設定.

Step1. 下載OpenCV官方網站的安裝檔(目前版本2.4.3)後解壓至目錄(我使用預設目錄C:\opencv)

Step2. 設定環境變數:進入控制台設定環境變數(指定動態連結檔的位置C:\opencv\build\x86\vc10\bin)然後重新開機使生效
PS:記得多路徑要加入分號區隔";"


在專案的屬性管理員中設定OpenCV的include和Lib
Step3. 先在VC中新增一個命令列的空專案,屬性為C++

Step4. 進入該專案的屬性管理員針對Debug和Release做環境設定(以下兩種設定方式幾乎一樣)


4.1 先設定include的位置
左邊欄位選擇C/C++,並且在右邊欄位的"其他Include目錄"選項增加以下目錄:
C:\opencv\build\include
C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2

4.2 隨即進入左欄的"連結器"的"一般"選項,並且設定該右欄的"其他程式庫目錄",然後指定目錄為:C:\opencv\build\x86\vc10\lib

4.3 進入連結器子選項的輸入"選項",並且在"其他相依性"選項中增加:

opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_haartraining_engined.lib
opencv_highgui243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_nonfree243d.lib
opencv_objdetect243d.lib
opencv_photo243d.lib
opencv_stitching243d.lib
opencv_ts243d.lib
opencv_video243d.lib
opencv_videostab243d.lib

PS: 這些連結庫檔案都在C:\opencv\build\x86\vc10\lib的資料夾裡面,Release屬性在這部分的設定就是沒有檔名尾巴的"d"

4.4 接下來換設定Release的屬性工作表

PS2:因為這兩個屬性設定檔在每個OpenCV相關的專案都需要使用到,因此我提供已經寫好的屬性工作表,不用新增,只需要導入即可

For Debug
For Release
PS3:工作表是所有OpenCV相關專案共用一份實體檔案,如果想分開的話請將檔案複製到個別專案資料夾,並且重新尋找導入


Step5. 以上環境設定完成即可開始寫程式

在此提供簡單的讀取圖片程式碼:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    if( argc != 2)
    {
     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
     return -1;
    }

    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file

    if(! image.data )                              // Check for invalid input
    {
        cout <<  "Could not open or find the image" << std::endl ;
        return -1;
    }

    namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
    imshow( "Display window", image );                   // Show our image inside it.

    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

2012年12月26日 星期三

OpenCV 2 Computer Vision Application Programming Cookbook


Source Codes
Amazon

Learning OpenCV: Computer Vision with the OpenCV Library


電子書(eBook)
Amazon


  • Paperback: 555 pages
  • Publisher: O'Reilly Media; 1st edition (October 1, 2008)
  • Language: English
  • ISBN-10: 0596516134
  • 另一本完整的OpenCV教學

Mastering OpenCV with Practical Computer Vision


書中範例程式碼

BOOK

在Codeblocks下導入OpenCV 2.4.x


教學
A.安裝Code::Blocks附帶MinGW版本
http://www.codeblocks.org/downloads/26
B.下載openCV將之解壓縮在C:\ (不能解壓縮在使用者資料夾)

C.修改環境變數,增加PATH=C:\opencv\build\x86\mingw\bin

D.下載MinGW(gcc 4.6),並且安裝(安裝時選擇預設,不要選擇下載最新程式碼)

D.1.將安裝後的C:\MinGW\bin\libstdc++-6.dll複製到CodeBlocks安裝資料夾內的MinGW\bin\

E.設定CodeBlocks編譯器參數
1. Add the OpenCV header files directory
Open Settings → Compiler and debugger... → Search directories tab → Compiler tab
CodeBlock settings: search directory
Click add button for adding a new entry. In the popup dialog, type c:\opencv\build\include,
Add OpenCV include directory to CodeBlocks
and click Ok.

1-2. Add the OpenCV library files directory
Open Settings → Compiler and debugger... → Search directories tab → Linker tab

Click add button for adding a new entry. In the popup dialog, type C:\opencv\build\x86\mingw\lib,

2. Add the OpenCV libraries needed for linking
Open Settings → Compiler and debugger... → Linker settings tab.
CodeBlocks linker settings
Click add for adding new entries and open a popup dialog.
CodeBlock settings: Add libraries to link
Click the "..." button to open the File Open Dialog. Go to c:\opencv\build\x86\mingw\libdirectory and select all files by pressing Ctrl-A.
Select OpenCV libraries
Click Open to add the files,
OpenCV libraries added to CodeBlocks
Click Ok to save all settings.

2012年11月9日 星期五

手把手教你學DSP -基於TMS320X281X

前陣子自己胡亂摸索TMS320F28335,但是一直沒有一個概念,就連如何建立專案都不會。在網路上面搜尋資訊,幾乎都沒有28335的教學,或是適用初學者的教材,好不容易找到對岸的教學資源,雖然他們用2812的比例似乎比較高,資源也比較豐富,還好這兩款DSP還算是同樣系列的,架構上也大致相同,可以藉此對DSP有更深入的了解,以利後續的開發。 

以下為教學影片:
影片教學


至於教科書是這本: 
手把手教你學DSP:基於TMS320×281×















目前還活躍的論壇:
連結1
連結2
連結3

雖然手上沒有書,但是藉著影片的教學,也還是有收穫的,這幾天趕進度看教學影片,一邊看一邊做,終於學會如何使用CCS3.3建立專案....自覺真是弱到爆!!

2012年10月20日 星期六

DSP控制DCtoAC的inverter初步結果

今天終於初步實現了使用DSP控制直流電轉換交流電,從前幾天存在的問題:DSP訊號送出來到電路板經過放大後流經IR2110時,低端輸出沒有問題,但是在高端輸出的部分卻沒有訊號,後來將所有腳位重新把錫焊的完整一些後,雖然可以看到高端輸出的訊號了,但是IR2110這顆IC一下子就變的非常燙!!當苦思不得其解的時候,連好同學也一起來debug!不經意間同學提出說或許焊錫時附帶的塑膠膜會導致電路不正常,而我卻是覺得或許是我的控制訊號頻率過高造成IR2110過熱。於是將焊錫附近的絕緣塑膠刮除,並且降低一些頻率後,IR2110終於可以正常運作!!

當開關的訊號可以正常運作後,我進一步嘗試接上濾波的電感想看看能否初步實現交流電,但是馬上又浮現了問題,輸出只有看震盪不起來的訊號後來發現其實是雜訊,經過檢查發現原來開關沒有與欲轉換的直流電連接,修改後再次送電發現電路依然震盪不起來,輸出的波形就像鐵鍊一樣
37K Hz PWM
37K Hz下的輸出結果
,接下來嚐試換小一點的濾波電感並且降低控制訊號的頻率後終於得到了想要的交流電!!
8K Hz PWM
8K Hz控制訊號下轉換出的交流電

接下來還需要更進一步研究必迴路控制器與柔性切換讓波型更漂亮與能夠承載更大的功率。

幾張照片的結果是受到無數的幫助才有一點點的進展。

2012年10月18日 星期四

CCSv3.3程式載入至DSP過程

1. Alt+C 連接dsp與CCS
2.打開程式rebuild all
3.Ctrl+L載入程式
4.Run

#############################################################################
PS:
步驟三如果沒有執行的話就會出現以下對話框的文字(這個bug搞了一個晚上...汗)
"warning no valid program is currently loaded into memory"

2012年10月8日 星期一

DSP初步連接錯誤-debug


今日在PC上面安裝新版本的Code Composer Studio v5.2.x準備讓DSP與PC連接時遇到以下錯誤

Error connecting to the target:
Error 0x80000200/-1041
Fatal Error during: OCS, 
Device driver: Problem with the Emulation Controller.
It is recommended to RESET EMULATOR.  This will disconnect each 
target from the emulator.  The targets should then be power cycled
or hard reset followed by an emureset and reconnect to each target.

經過一連串上網搜尋解決方法後,索性將舊的版本(CCS v3.3)刪除,想說死馬當活馬醫,沒想到地解決了!!!以下將記錄安裝新版的CCS V5.x.x以及DSP的開機順序

安裝CCS(http://processors.wiki.ti.com/index.php/Download_CCS):

其中需要向TI註冊並且說明軟體用途,越完整的描述通過審核的機率大,下載後即可安裝。

破解CCS:

上網搜尋破解檔,關鍵字:CCS V5 破解
並且按照破解程序即可

CCS v5.x.x之TI TMS320F28335除錯設定:

DSP上電順序:(按照官方手冊說明,若不按照順序則有可能造成鎖死,或許我之前的問題是因為沒有按照順序的關係)

1.POWER先上電
2.再將數據傳輸線連接PC

下電則順序相反

Debug設定




第一篇

此網誌為學習電腦的筆記,初步應該會著重C語言與TI的DSP---TMS320F28335