形態學濾波

2021-09-02 06:37:38 字數 2095 閱讀 9190

//#include "pch.h"

#include #include #include #include using namespace std;

using namespace cv;

//************************************

// 形態學

//************************************

mat g_srcimage, g_dstimage;

int g_nelementshape = morph_rect;

int g_nmaxiterationnum = 10;

int g_nopenclosenum = 0;

int g_nerodedilatenum = 0;

int g_ntopblackhatnum = 0;

int g_ngradientnum = 0;

static void on_openclose(int, void *);

static void on_erodedilate(int, void *);

static void on_topblackhat(int, void *);

static void on_gradient(int, void *);

static void showhelptext();

int main()

namedwindow("【原始圖】");

imshow("【原始圖】", g_srcimage);

namedwindow("【開運算/閉運算】", 1);

namedwindow("【腐蝕/膨脹】", 1);

namedwindow("【頂帽/黑帽】", 1);

namedwindow("【形態學梯度】", 1);

g_nopenclosenum = 9;

g_nerodedilatenum = 9;

g_ntopblackhatnum = 2;

createtrackbar("迭代值:", "【開運算/閉運算】", &g_nopenclosenum, g_nmaxiterationnum * 2 + 1, on_openclose);

createtrackbar("迭代值:", "【腐蝕/膨脹】", &g_nerodedilatenum, g_nmaxiterationnum * 2 + 1, on_erodedilate);

createtrackbar("迭代值:", "【頂帽/黑帽】", &g_ntopblackhatnum, g_nmaxiterationnum * 2 + 1, on_topblackhat);

createtrackbar("迭代值:", "【形態學梯度】", &g_ngradientnum, g_nmaxiterationnum + 1, on_gradient);

while (1)

// while (char(waitkey(1) != 'q')) {}

waitkey(0);

}static void on_gradient(int, void *)

static void on_openclose(int, void *)

else

imshow("【開運算/閉運算】", g_dstimage);

}static void on_erodedilate(int, void *)

static void on_topblackhat(int, void *)

static void showhelptext()

// 執行程式: ctrl + f5 或除錯 >「開始執行(不除錯)」選單

// 除錯程式: f5 或除錯 >「開始除錯」選單

// 1. 使用解決方案資源管理器視窗新增/管理檔案

// 2. 使用團隊資源管理器視窗連線到源**管理

// 3. 使用輸出視窗檢視生成輸出和其他訊息

// 4. 使用錯誤列表視窗檢視錯誤

// 5. 轉到「專案」>「新增新項」以建立新的**檔案,或轉到「專案」>「新增現有項」以將現有**檔案新增到專案

// 6. 將來,若要再次開啟此專案,請轉到「檔案」>「開啟」>「專案」並選擇 .sln 檔案

形態學濾波 腐蝕與膨脹

形態學操作就是基於形狀的一系列影象處理操作。最基本的形態學操作有兩種 膨脹和腐蝕。這裡需要注意的是 膨脹和腐蝕是對白色部分而言的,不是黑色部分。因為我用毛筆字的,剛開始看起來,非常困惑為什麼膨脹之後,毛筆字反而變小了,其實當時就是沒有注意到,膨脹是對白色區域進行處理的,而白色區域增加了之後,字型就自...

形態學重建

在形態學梯度影象的基礎上,利用形態學的開閉重建運算對梯度影象進行重建,在保留重要區域倫敦的同時去除細節和雜訊。分水嶺變換存在過分割現象,原因在於檢測的區域性極值過多,造成極值過多的原因在於影象中的非規則灰度擾動和雜訊。對於好的分水嶺影象分割方法,不僅能消除過分割現象,而且應保證分割後的區域倫敦邊緣具...

形態學運算元

形態學運算元的主要思想是用一定形狀的結構元素 在影象中抽取出相應的某些結構,通常可以用於影象的濾波 分割 分類等處理。形態學運算元有腐蝕 膨脹 開和閉四種。腐蝕腐蝕是一種消除邊界點,使邊界向內部收縮的過程。可以用來消除小且無意義的物體。腐蝕的演算法 用3x3的結構元素,掃瞄影象的每乙個畫素 用結構元...