然後就開始研究如何連結,哀,不過因為我下載的兩個軟體版本都太新,網路上找不到太新的教學,我也沒太多時間研究以下連結的部份的重點在哪,只好跟著網路上最多的版本去裝了
P.S.因為完全沒有影像處理方面的任何基礎,所以若參考文件是英文的我無法理解翻譯的部分就會直接打上英文,請會影像處理的大大如果有路過的話可以指點迷津一下,感激不盡!!
安裝環境
- Windows 7
- Opencv2.0(安裝路徑-->C:\Opencv2.0)
- Dev-c++4.9.9.2(安裝路徑-->C:\Dev-cpp)
安裝步驟
2.安裝OpenCV2.0在C:\OpenCV2.0(不想安裝在此路徑也可以,只是後面的連結要記得選對)
3.在DEV 工具/編譯器選項/編譯器/編譯器設定組態
"新增編譯器設定"(綠色加號按鈕)並命名為"OpenCV2.0″
(不同的Dev版本編譯器選項的介面會稍有不同) |
4.在連結器命令列中加入以下命令(前面框號記得打勾)
-llibcxcore200 -llibcv200 -llibcvaux200 -llibhighgui200 -llibml200
5.在DEV 工具/編譯器選項/目錄/二進位檔 加入:
C:\OpenCV2.0\bin
C:\Dev-Cpp\Bin(以下這兩項有可能會自動出現,就不用自己再加入了,不過我一個手快都刪了啦....後面的Dev連結也是....)
C:\Dev-Cpp\libexec\gcc\mingw32\3.4.2
按右下角宏框框起來的資料夾選路徑,在按新增 |
6.在DEV 工具/編譯器選項/目錄/函式庫 加入:
C:\OpenCV2.0\lib
C:\Dev-Cpp\lib
7.在DEV 工具/編譯器選項/目錄/C引入檔 加入:
(要用C寫的話再做 )
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\include
8.在DEV 工具/編譯器選項/目錄/C++引入檔 加入:
(要用C++寫的話再做,我就沒有做這個步驟)
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include
C:\Dev-Cpp\include\c++\3.4.2\backward
C:\Dev-Cpp\include\c++\3.4.2\mingw32
C:\Dev-Cpp\include\c++\3.4.2
C:\Dev-Cpp\include
9.在C:\OpenCV2.0\include\opencv中找到cxoperations.h檔
(有些如果已標明是修正版就不需要做9~11,不過可以打開確認一下)
10.找到檔中第66行部分程式碼如下
#else
#include <bits/atomicity.h>
#if __GNUC__ >= 4
11.將它改成如下程式碼並儲存
#else
#include <bits/atomicity.h>
#if __GNUC__ >= 4 || __MINGW32__
12.每次開新的專案必須在專案中選擇新建的編譯器設定(OpenCV2.0)
接下來當然就要測試一下有沒有成功啦A__A
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main()
{
IplImage *img = cvLoadImage("d:\\15337.jpg", 1);
cvNamedWindow("Show Image",0);
cvResizeWindow("Show Image",300,400);
cvShowImage("Show Image",img);
cvWaitKey(0);
cvDestroyWindow("Show Image");
cvReleaseImage(&img);
}
cvLoadImage(const char* filename,int iscolor=CV_LOAD_IMAGE_COLOR)
cvLoadImage()裡的第一個內容是檔案的名字,可以跟我一樣直接把路徑打進去,不然檔案的路徑就要放在和程式執行檔一樣的路徑。
第二個整數數字是決定圖片的顏色型態,如果數字>0,圖片會被強制轉換成3-channel的顏色型態(我也不懂3-channel是啥,opencv文件寫的...);如果=0,圖片會是灰階的(灰階我懂A__A);如果<0,圖片會是它原本的顏色型態。
#define CV_LOAD_IMAGE_COLOR 1
#define CV_LOAD_IMAGE_GRAYSCALE 0
#define CV_LOAD_IMAGE_UNCHANGED -1
cvNamedWindow(const char* name, int flags )
此函數用來創造一個可儲存圖片或trackbar的視窗,注意:如果要創造的視窗已經有一個相同名字的視窗存在的話,此函數就沒作用了。
第一個內容是視窗的名字,第二個內容是flag of the window(又是一個我不懂的QAQ,只能把英文直接打上來了),不過目前支援的flag只有CV_WINDOW_AUTOSIZE(一定要大寫一定要大寫一定要大寫),如果用了CV_WINDOW_AUTOSIZE flag,視窗大小就會自動調整成圖片的大小,而且之後無法再手動更改視窗大小(根據kuruma無聊的嘗試,flag欄位好像只要不是打0以外的數字,視窗都會自動調整成圖片的大小)。
cvResizeWindow( const char* name, int width, int height )
此函數可修改視窗的大小
第一個內容是視窗的名字,第二個是想要的視窗寬度,第三個是想要的視窗高度。
注意:如果要修改的視窗已經有用過CV_WINDOW_AUTOSIZE flag了那這個函數是不會有作用的。
cvLoadImage(const char* filename,int iscolor=CV_LOAD_IMAGE_COLOR)
cvLoadImage()裡的第一個內容是檔案的名字,可以跟我一樣直接把路徑打進去,不然檔案的路徑就要放在和程式執行檔一樣的路徑。
第二個整數數字是決定圖片的顏色型態,如果數字>0,圖片會被強制轉換成3-channel的顏色型態(我也不懂3-channel是啥,opencv文件寫的...);如果=0,圖片會是灰階的(灰階我懂A__A);如果<0,圖片會是它原本的顏色型態。
#define CV_LOAD_IMAGE_COLOR 1
#define CV_LOAD_IMAGE_GRAYSCALE 0
#define CV_LOAD_IMAGE_UNCHANGED -1
cvNamedWindow(const char* name, int flags )
此函數用來創造一個可儲存圖片或trackbar的視窗,注意:如果要創造的視窗已經有一個相同名字的視窗存在的話,此函數就沒作用了。
第一個內容是視窗的名字,第二個內容是flag of the window(又是一個我不懂的QAQ,只能把英文直接打上來了),不過目前支援的flag只有CV_WINDOW_AUTOSIZE(一定要大寫一定要大寫一定要大寫),如果用了CV_WINDOW_AUTOSIZE flag,視窗大小就會自動調整成圖片的大小,而且之後無法再手動更改視窗大小(根據kuruma無聊的嘗試,flag欄位好像只要不是打0以外的數字,視窗都會自動調整成圖片的大小)。
cvResizeWindow( const char* name, int width, int height )
此函數可修改視窗的大小
第一個內容是視窗的名字,第二個是想要的視窗寬度,第三個是想要的視窗高度。
注意:如果要修改的視窗已經有用過CV_WINDOW_AUTOSIZE flag了那這個函數是不會有作用的。
其實下載opencv後,在opencv2.0->doc有一個opencv的PDF檔裡有opencv文件檔,有各個函數的介紹和用法,in C或Python,我也是參考那的A__A
圖片
改用CV_WINDOW_AUTOSIZE的執行結果
原始圖片大小比300*400大多了 |
沒有留言:
張貼留言