主頁 > 知識庫 > OpenCV半小時掌握基本操作之邊緣檢測

OpenCV半小時掌握基本操作之邊緣檢測

熱門標簽:萊蕪電信外呼系統(tǒng) 沈陽防封電銷電話卡 高德地圖標注收入咋樣 地圖標注多個 企業(yè)微信地圖標注 B52系統(tǒng)電梯外呼顯示E7 銀川電話機器人電話 鶴壁手機自動外呼系統(tǒng)違法嗎 怎么辦理400客服電話

【OpenCV】⚠️高手勿入! 半小時學會基本操作⚠️ 邊緣檢測

概述

OpenCV 是一個跨平臺的計算機視覺庫, 支持多語言, 功能強大. 今天小白就帶大家一起攜手走進 OpenCV 的世界. (第 12 課)

Scharr 算子

Scharr 算子和 Sobel 算子基本一樣. 只是卷積核系數(shù)不同. Scharr 算子對邊界更加敏感, 也更容易誤判.

卷積核參數(shù):

例子:

# Scharr 算子
scharr_x = cv2.Scharr(img, cv2.CV_64F, 1, 0)
scharr_y = cv2.Scharr(img, cv2.CV_64F, 0, 1)

# 取絕對值
scharr_x = cv2.convertScaleAbs(scharr_x)
scharr_y = cv2.convertScaleAbs(scharr_y)

# 融合
scharr_xy = cv2.addWeighted(scharr_x, 0.5, scharr_y, 0.5, 0)

# 展示圖片
cv2.imshow("scharr_xy", scharr_xy)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果:

Laplacian 算子

拉普拉斯算子 (Laplacian) 是圖像二階空間導數(shù)的二維向同性測度. 拉普拉斯算子可以突出圖像中強度發(fā)生快速變化的區(qū)域, 因此常用在邊緣檢測任務當中.

在進行 Laplacian 操作之前通常需要先用高斯平滑濾波器 (Gaussian Blur) 降低 Laplacian 算子對于噪聲的敏感性.

卷積核參數(shù):

例子:

# 讀取圖片, 并準換成灰度圖
img = cv2.imread("Mona_Lisa.jpg", cv2.IMREAD_GRAYSCALE)

# 高斯濾波器 (3 X 3)
img = cv2.GaussianBlur(img, (3, 3), sigmaX=0.1)

# Laplacian 算子
laplacian = cv2.Laplacian(img, cv2.CV_64F)

# 取絕對值
laplacian = cv2.convertScaleAbs(laplacian)

# 展示圖片
cv2.imshow("laplacian", laplacian)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果:

注: Sigma 值越小, 模板的中心系數(shù)就越大, 周圍的系數(shù)較小, 平滑的效果就不是很明顯.

Sobel vs Scharr vs Laplacian

Canny 邊緣檢測

Canny 邊緣檢測是非常流行的一種邊緣檢測算法, 由 John Canny 在 1986 年提出.

步驟:

  1. 使用高斯濾波器, 平滑圖像, 消除噪聲
  2. 計算圖像中每個像素點的梯度強度和方向
  3. 使用沒極大值抑制 (Non-Maximum Suppression) 消除邊緣檢測帶來的雜散響應
  4. 使用雙閾值檢測 (Double Threshold) 來確定真實和潛在的邊緣
  5. 通過抑制孤立的弱邊緣最終完成邊緣檢測

高斯濾波器

梯度和方向

非極大值抑制

雙閾值檢測

例子

# 讀取圖片, 并轉換成灰度圖
img = cv2.imread("Mona_Lisa.jpg", cv2.IMREAD_GRAYSCALE)

# Canny邊緣檢測
out1 = cv2.Canny(img, 50, 150)
out2 = cv2.Canny(img, 100, 150)

# 合并
canny = np.hstack((out1, out2))

# 展示圖片
cv2.imshow("canny", canny)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果:

到此這篇關于OpenCV半小時掌握基本操作之邊緣檢測的文章就介紹到這了,更多相關OpenCV邊緣檢測內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python OpenCV實現(xiàn)邊緣檢測
  • OpenCV中Canny邊緣檢測的實現(xiàn)
  • Python實現(xiàn)Opencv cv2.Canny()邊緣檢測
  • 使用Python中OpenCV和深度學習進行全面嵌套邊緣檢測
  • OpenCV實現(xiàn)灰度、高斯模糊、邊緣檢測的示例
  • Python使用Opencv實現(xiàn)邊緣檢測以及輪廓檢測的實現(xiàn)
  • 如何利用Python 進行邊緣檢測
  • python實現(xiàn)canny邊緣檢測

標簽:呼倫貝爾 烏魯木齊 呼倫貝爾 銀川 安慶 三亞 湘西 葫蘆島

巨人網絡通訊聲明:本文標題《OpenCV半小時掌握基本操作之邊緣檢測》,本文關鍵詞  OpenCV,半小時,掌握,基本操作,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV半小時掌握基本操作之邊緣檢測》相關的同類信息!
  • 本頁收集關于OpenCV半小時掌握基本操作之邊緣檢測的相關信息資訊供網民參考!
  • 推薦文章