『壹』 圖像膨脹腐蝕演算法原理
膨脹和腐蝕的主要用途:
消除雜訊;
分割出獨立的圖像元素,在圖像中連接相鄰的元素;
尋找圖像中明顯的極大值或極小值區;
求出圖像的梯度;
【注】:
腐蝕和膨脹是對像素值大的部分而言的,即高亮白部分而不是黑色部分;
膨脹是圖像中的高亮部分進行膨脹,領域擴張,效果圖擁有比原圖更大的高亮區域;
腐蝕是圖像中的高亮部分被腐蝕掉,領域縮減,效果圖擁有比原圖更小的高亮區域;
2
/9
膨脹原理:
膨脹:求局部最大值;
①定義一個卷積核B,
核可以是任何的形狀和大小,且擁有一個單獨定義出來的參考點-錨點(anchorpoint);
通常和為帶參考點的正方形或者圓盤,可將核稱為模板或掩膜;
②將核B與圖像A進行卷積,計算核B覆蓋區域的像素點最大值;
③將這個最大值賦值給參考點指定的像素;
因此,圖像中的高亮區域逐漸增長。
3
/9
腐蝕原理:
腐蝕:局部最小值(與膨脹相反);
①定義一個卷積核B,
核可以是任何的形狀和大小,且擁有一個單獨定義出來的參考點-錨點(anchorpoint);
通常和為帶參考點的正方形或者圓盤,可將核稱為模板或掩膜;
②將核B與圖像A進行卷積,計算核B覆蓋區域的像素點最小值;
③將這個最小值賦值給參考點指定的像素;
因此,圖像中的高亮區域逐漸減小。
4
/9
OpenCV中膨脹函數-dilate()
格式:
void dilate(
InputArray src,//輸入
OutputArray dst, //輸出
InputArray kernel, //核大小
Point anchor=Point(-1,-1),// 錨位置,(-1,-1)為中心
int iterations=1, //迭代次數
int borderType=BORDER_CONSTANT,//圖像邊界像素模式
const Scalar& borderValue=morphologyDefaultBorderValue()//邊界值
)
【注】:
關於核,一般配合getStructuringElement()使用;
getStructuringElement():返回指定形狀和尺寸的結構元素;
格式:
getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1));
參數:
shape:表核的形狀,矩形MORPH_RECT;交叉形MORPH_CROSS;橢圓形MORPH_ELLIPSE;
ksize:核尺寸大小;
anchor:錨點的位置,錨點隻影響形態學運算結果的偏移;
5
/9
OpenCV中腐蝕函數-erode()
格式:
void erode(
InputArray src,//輸入
OutputArray dst, //輸出
InputArray kernel, //核大小
Point anchor=Point(-1,-1),// 錨位置,(-1,-1)為中心
int iterations=1, //迭代次數
int borderType=BORDER_CONSTANT,//圖像邊界像素模式
const Scalar& borderValue=morphologyDefaultBorderValue()//邊界值
)
6
/9
形態學開運算:
開運算(Open Operation):先腐蝕後膨脹的過程;
功能:
消除小物體;
在纖細處分離物體;
平滑較大的邊界並不明顯改變其面積;
7
/9
形態學閉運算:
閉運算(Closing Openration),先膨脹後腐蝕;
功能:
排除小型黑洞(黑斑);
8
/9
OpenCV:morphologyEx()
功能:morphologyEx函數利用基本的膨脹和腐蝕技術,來執行更加高級形態學變換,
如開閉運算,形態學梯度,「頂帽」、「黑帽」等等。
『貳』 數字圖像處理(c++ opencv):形態學圖像處理-圖像膨脹
在數字圖像處理的世界中,C++與OpenCV的結合為我們提供了強大的工具,特別是形態學操作,如圖像膨脹。其核心目標是增強圖像中的目標或連接它們,使它們在視覺上更為明顯。
膨脹操作的關鍵在於結構元,一個白色的像素模板,它會在圖像中移動並替換其周圍與結構元相匹配的像素。這導致了一個有趣的現象:對於白色背景,膨脹會讓黑色目標區域變小,反之,對於黑色背景,白色目標區域會擴大。這本質上是由於結構元的白色像素會擴張圖像中的白色區域,而黑色區域會受到腐蝕。
要實現圖像膨脹,首先需要調用getStructuringElement函數來創建結構元,它接受多個參數如形狀、大小等。然後,dilate函數是實際進行膨脹操作的函數,它接收圖像數據、結構元、迭代次數等參數。通過這兩個函數,我們可以靈活地控制膨脹的強度和效果。
『叄』 python中開閉運算函數
在Python中,開運算和閉運算通常使用OpenCV庫中的morphologyEx函數來實現。
開運算:
閉運算:
總結:
『肆』 圖像處理知識匯總(一)
圖像處理知識匯總:
圖像濾波:
線性濾波器:
線性濾波與非線性濾波:
其他濾波器:
邊緣檢測:
特徵提取與匹配:
形態學操作:
其他圖像處理技術:
OpenCV相關:
以上內容涵蓋了圖像處理中的基礎概念、濾波方法、邊緣檢測、特徵提取與匹配、形態學操作以及其他相關技術,並簡要介紹了OpenCV的一些基本內容。