利用OpenCV提取目標輪廓

2021-06-05 07:19:41 字數 1102 閱讀 6479

乙個簡單的提取飛機目標影象(二值圖)輪廓的程式

#include

#include

#include

#include

iplimage* g_image = null;

iplimage* g_gray =null;

int g_thresh = 100;

cvmemstorage* g_storage = null;

char name[1][80];

int presskey;

int main( int argc, char** argv )

else

cvseq* contours = 0;

cvcvtcolor( g_image, g_gray, cv_bgr2gray );

//cvthreshold( g_gray, g_gray, g_thresh, 255, cv_thresh_binary );

cvfindcontours( g_gray, g_storage, &contours );

cvzero( g_gray );

if( contours )

cvshowimage( "contours", g_gray );

presskey=cvwaitkey();

printf("%c is pressed\n",presskey);

switch( presskey )

cvdestroywindow( "contours" );

cvreleaseimage( &g_image );

cvreleaseimage( &g_gray );

}else

return -1;

return 0;

}使用f15戰機的二值影象進行了實驗,下面是原圖和結果圖:

opencv 通過輪廓識別提取檢測目標

1.轉換為灰度圖 2.高斯濾波 void gaussianblur inputarray src,輸入影象 outputarray dst,輸出影象 size ksize,高斯濾波器模板大小 double sigmax,高斯濾波在橫線的濾波係數 double sigmay,高斯濾波在豎向的濾波係數 ...

Opencv實現輪廓提取功能

輪廓 乙個輪廓代表一系列的點 畫素 這一系列的點構成乙個有序的點集,所以可以把乙個輪廓理解為乙個有序的點集。在opencv中,提供了乙個函式返回乙個有序的點集或者有序的點集的集合 指多個有序的點集 函式findcontour是從二值影象中來計算輪廓的,一般使用canny 函式處理後的影象,因為這樣的...

opencv學習 9 輪廓提取

輪廓提取 主要針對二值影象 1 輪廓分為外輪廓和內輪廓 如下圖 外輪廓以c開頭 內輪廓以h開頭 其中img是二值影象,storage是記憶體儲存序列,contours指向儲存的第乙個輪廓,cvmemstorage storage cvcreatememstorage 0 記憶體儲存序列 cvseq ...