Opencv幾個經典的入門級程式

2021-09-30 11:03:42 字數 2248 閱讀 3390

灰度化處理影象

主要用到

plimage* cvcreateimage( cvsize size, int depth, int channels )

相當於如下的步驟:

header = cvcreateimageheader(size,depth,channels);

cvcreatedata(header);

具體的**如下:

#include "cv.h"

#include "highgui.h"

int main( int argc, char** ar** )

return -1;

}

編譯:

g++ -ggdb `pkg-config opencv --cflags --libs` gray.c -o gray
執行 :
./gray  ../picture/lena.jpg    gray.jpg
原圖:

效果圖:

邊緣檢測:

使用到的函式為:

void cvcanny( const cvarr* image, cvarr* edges, double threshold1, double threshold2, int aperture size=3 );

各引數的含義如下:

image  單通道輸入影象.

edgee  單通道儲存邊緣的輸出影象

threshold1  第乙個閾值

threshold2  第二個閾值

aperture_size  sobel 運算元核心大小 

函式 cvcanny 採用 canny 演算法發現輸入影象的邊緣而且在輸出影象中標識這些邊緣。threshold1和threshold2 當中的小閾值用來控制邊緣連線,大的閾值用來控制強邊緣的初始分割。cvcanny只接受單通道影象作為輸入,故載入影象時,cvloadimage(src,iscolor),第二個引數必須設為0.

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

int main( int argc, char** ar** )

return -1;

}

編譯:

g++ -ggdb `pkg-config opencv --cflags --libs` canny.c -o canny
執行 :
./canny ../../../../../pictures/wolf.jpg
效果圖:

輪廓檢測

函式模型如下:

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

int main( int argc, char** ar** )

else

cvdrawcontours(pcontourimg, contour, cv_rgb(0,0,255), cv_rgb(255, 0, 0),2, 2, 8);

cvshowimage( "contour", pcontourimg );

cvwaitkey(0);

cvdestroywindow( "src" );

cvdestroywindow( "contour" );

cvreleaseimage( &pimg );

cvreleaseimage( &pcontourimg );

cvreleasememstorage(&storage);

return 0;

}

編譯執行後的效果如下圖:

git 入門級的幾個操作

做測試也避免不了耍耍 code,最終也避免不了用git,記錄幾個常用的命令,希望最終能記錄個git 完整的使用過程 安裝完了git 先執行 1 git init 這個用來初始化你本地git repository 2.git add test.txt 已經對 test.txt檔案有了改動,那麼用git...

經典 Linux菜鳥入門級命令大全

2.ls 檢視目錄或者檔案的屬 列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙個 表示是檔案,如果是l則表示是乙個連線檔案 link b.表示檔案或者目錄許可許可權.分別用可讀 r 可寫 w 可執行 x 3.cp 拷貝檔案 eg cp f...

線段樹的入門級

線段樹是一種二叉搜尋樹,與區間樹相似,它將乙個區間劃分成一些單元區間,每個單元區間對應線段樹中的乙個葉結點。對於線段樹中的每乙個非葉子節點 a,b 它的左兒子表示的區間為 a,a b 2 右兒子表示的區間為 a b 2 1,b 因此線段樹是平衡二叉樹,最後的子節點數目為n,即整個線段區間的長度。使用...