close

接續上一篇<輪廓搜尋 Finding contours using OpenCV2.4.6 with visual studio 2010>

這次將整合搜尋輪廓find contours範例至Image Viewer平台, 開啟上一篇的範例程式<find contour VS2010 OpenCV2.4.6>

自動載入C:\OpenCV-2.4.6\opencv\include\opencv2\imgproc\types_c.h其中一段敘述如下

/* Contour retrieval modes */
enum
{
    CV_RETR_EXTERNAL=0,
    CV_RETR_LIST=1,
    CV_RETR_CCOMP=2,
    CV_RETR_TREE=3,
    CV_RETR_FLOODFILL=4
};

/* Contour approximation methods */
enum
{
    CV_CHAIN_CODE=0,
    CV_CHAIN_APPROX_NONE=1,
    CV_CHAIN_APPROX_SIMPLE=2,
    CV_CHAIN_APPROX_TC89_L1=3,
    CV_CHAIN_APPROX_TC89_KCOS=4,
    CV_LINK_RUNS=5
};

首先, 拉一個QComboBox, 依序加入輪廓擷取方法(Contour retrieval modes)的選項

仿照上面步驟, 再拉一個QComboBox, 接著依序加入輪廓近似方法(Contour approximation methods)的選項

連接horizontalSlider的觸發事件valueChanged

connect(ui->horizontalSlider_4,SIGNAL(valueChanged(int)),ui->lcdNumber_4,SLOT(display(int)));//搜尋輪廓(findcontours)即時顯示門檻值1

connect(ui->horizontalSlider_5,SIGNAL(valueChanged(int)),ui->lcdNumber_5,SLOT(display(int)));//搜尋輪廓(findcontours)即時顯示門檻值2
connect(ui->actionFindContours,SIGNAL(triggered()),this,SLOT(actionFindContours()));//搜尋輪廓(findcontours)
 

 

 

<靜態處理>插入<搜尋輪廓>

mainwindow.h加入actionFindContours()函式宣告

mainwindow.cpp定義對應的實作

----------------------------------------------------------------------------------------------------

mainwindow.h新增成員變數

/*搜尋輪廓*/

cv::Mat1b img_Canny;     //影像邊緣偵測Canny
cv::Mat3b img_contour;   //搜尋輪廓

imageutility.h新增成員函式

imageutility.cpp實作成員函式myFindContours

imageutility.cpp

當按下Canny threshold 1 或 Canny threshold 2, 會重新計算一次<搜尋輪廓>

跳到<搜尋輪廓>副程式

 

actionFindContours()



Youtube測試操作

arrow
arrow
    文章標籤
    contour OpenCV Qt
    全站熱搜
    創作者介紹
    創作者 me1237guy 的頭像
    me1237guy

    天天向上

    me1237guy 發表在 痞客邦 留言(0) 人氣()