導航:首頁 > 源碼編譯 > opencv膨脹演算法

opencv膨脹演算法

發布時間:2025-08-03 17:46:19

『壹』 圖像膨脹腐蝕演算法原理

膨脹和腐蝕的主要用途:
消除雜訊;
分割出獨立的圖像元素,在圖像中連接相鄰的元素;
尋找圖像中明顯的極大值或極小值區;
求出圖像的梯度;
【注】:
腐蝕和膨脹是對像素值大的部分而言的,即高亮白部分而不是黑色部分;
膨脹是圖像中的高亮部分進行膨脹,領域擴張,效果圖擁有比原圖更大的高亮區域;
腐蝕是圖像中的高亮部分被腐蝕掉,領域縮減,效果圖擁有比原圖更小的高亮區域;
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函數來實現

開運算

閉運算

總結

『肆』 圖像處理知識匯總(一)

圖像處理知識匯總

  1. 圖像濾波

    • 定義:在盡量保留圖像細節特徵的條件下對目標圖像的雜訊進行抑制。
    • 平滑:也稱模糊,是簡單且常用的一種圖像處理方法,主要用於減弱雜訊。
  2. 線性濾波器

    • 低通濾波器:允許低頻通過。
    • 高通濾波器:允許高頻通過。
    • 帶通濾波器:允許一定范圍的頻率通過。
    • 帶阻濾波器:允許一定范圍的頻率通過並阻止其他頻率。
    • 全通濾波器:允許所有頻率通過,僅改變相位。
    • 陷波濾波器:阻止一個狹窄頻率范圍通過。
  3. 線性濾波與非線性濾波

    • 線性濾波:方框濾波、均值濾波、高斯濾波。
      • 方框濾波:每個輸出像素是內核鄰域像素值的平均值得到。
      • 均值濾波:用均值代替原圖像中的各個像素值。
      • 高斯濾波:適用於消除高斯雜訊,廣泛應用於圖像處理的減噪過程。
    • 非線性濾波:中值濾波、雙邊濾波。
      • 中值濾波:用像素點鄰域灰度值的中值代替該像素點的灰度值,常用於去除椒鹽雜訊。
      • 雙邊濾波:結合圖像的空間鄰近度和像素值相似度的一種折衷處理。
  4. 其他濾波器

    • 維納濾波:自適應最小均方差濾波器,基於圖像和雜訊各自相關的相關矩陣。
  5. 邊緣檢測

    • 目的:找到圖像中亮度變化劇烈的像素點構成的集合,表現為輪廓。
    • 邊緣檢測運算元:Roberts Cross運算元、Prewitt運算元、Sobel運算元、Canny運算元、羅盤運算元、Laplacian運算元、MarrHildreth等。
    • 傳統演算法步驟:濾波、增強、提取邊緣。
    • Sobel運算元:結合高斯平滑和微分求導,計算圖像灰度函數的近似梯度。
    • Canny邊緣檢測:John Canny在1986年提出的多階段演算法。
  6. 特徵提取與匹配

    • SIFT:尺度不變特徵變換,檢測、描述和匹配圖像局部特徵點的方法,保持旋轉不變性。
    • SURF:加速魯棒特徵,用於檢測、描述、匹配圖像局部特徵點的特徵描述子。
    • LBP特徵:局部二值模式,描述圖像局部紋理特徵的運算元。
    • HOG特徵:方向梯度直方圖,用於進行物體檢測的特徵描述子。
    • 常用特徵檢測演算法:FAST、STAR、SIFT、SURF、ORB等。
  7. 形態學操作

    • 膨脹:圖像中的高亮部分進行膨脹。
    • 腐蝕:原圖中的高亮部分被腐蝕。
    • 開運算:先腐蝕後膨脹,用於消除小物體、分離物體、平滑較大物體的邊界。
    • 閉運算:先膨脹後腐蝕,排除小型黑洞。
    • 形態學梯度:膨脹圖與腐蝕圖之差,用於保留物體的邊緣輪廓。
    • 頂帽運算:原圖像與開運算的結果圖之差,用於分離比臨近點亮一些的斑塊。
    • 黑帽運算:閉運算結果圖與原圖像之差,用於分離比鄰近點暗一些的斑塊。
  8. 其他圖像處理技術

    • 漫水填充法:用特定的顏色填充演算法填充連通區域,用於標記或分離圖像的一部分進行處理或分析。
    • 仿射變換:線性變換和平移的組合,保持了二維圖形的平直性和平行性。
    • 圖像金字塔:包括高斯金字塔和拉普拉斯金字塔。
    • 凸包:將最外層的點連接起來構成的凸多邊形,用於理解物體形狀或輪廓。
    • 反向投影:記錄給定圖像中的像素點如何適應直方圖模型像素分布的方式。
    • Harris角點檢測演算法:直接基於灰度圖像的角點提取演算法,穩定性高。
    • 分水嶺演算法:圖像區域分割法,將跟臨近像素間的相似性作為重要的參考依據。
  9. OpenCV相關

    • 主要模塊:包括Core、圖像濾波、幾何圖像變換、混合圖像變換、直方圖、結構分析及形狀描述、運動分析及目標跟蹤、特徵及目標檢測等。
    • 數據類型:如CV_8UC3表示8位無符號整型,3個通道。
    • Scalar類:表示具有4個元素的數組,用於傳遞像素值。
    • 文件擴展:.hpp將實現代碼混入.h頭文件,無需單獨編譯

以上內容涵蓋了圖像處理中的基礎概念、濾波方法、邊緣檢測、特徵提取與匹配、形態學操作以及其他相關技術,並簡要介紹了OpenCV的一些基本內容。

閱讀全文

與opencv膨脹演算法相關的資料

熱點內容
初遇app師徒是干什麼的 瀏覽:6
學習文學用什麼app 瀏覽:735
寶塔主升浪源碼 瀏覽:967
什麼是國產伺服器 瀏覽:547
壓縮機開關圖片 瀏覽:496
我的世界伺服器實體碰撞怎麼關 瀏覽:773
二校pdf 瀏覽:328
命令模式如何進去 瀏覽:978
編譯框嗎 瀏覽:484
怎麼操作阿里雲伺服器來賺錢 瀏覽:193
絕地求生伺服器怎麼抽 瀏覽:19
貼標簽的app叫什麼 瀏覽:999
二級代理伺服器地址 瀏覽:435
怎麼加密文件夾嗎 瀏覽:861
perl源碼編譯生成庫 瀏覽:585
做一個教育app有什麼資源可以利用 瀏覽:506
安卓手機如何遷移蘋果 瀏覽:964
浙江大學java 瀏覽:571
在文件夾中怎麼新建256色點陣圖 瀏覽:59
大話設計模式python 瀏覽:611