佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > OpenCV半小時(shí)掌握基本操作之邊緣檢測(cè)

OpenCV半小時(shí)掌握基本操作之邊緣檢測(cè)

熱門標(biāo)簽:銀行業(yè)務(wù) 美圖手機(jī) 智能手機(jī) 檢查注冊(cè)表項(xiàng) 網(wǎng)站文章發(fā)布 服務(wù)器配置 鐵路電話系統(tǒng) 呼叫中心市場(chǎng)需求

【OpenCV】⚠️高手勿入! 半小時(shí)學(xué)會(huì)基本操作⚠️ 邊緣檢測(cè)

概述

OpenCV 是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺(jué)庫(kù), 支持多語(yǔ)言, 功能強(qiáng)大. 今天小白就帶大家一起攜手走進(jìn) OpenCV 的世界. (第 12 課)

Scharr 算子

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

卷積核參數(shù):

例子:

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

# 取絕對(duì)值
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()

輸出結(jié)果:

Laplacian 算子

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

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

卷積核參數(shù):

例子:

# 讀取圖片, 并準(zhǔn)換成灰度圖
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)

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

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

輸出結(jié)果:

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

Sobel vs Scharr vs Laplacian

Canny 邊緣檢測(cè)

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

步驟:

  1. 使用高斯濾波器, 平滑圖像, 消除噪聲
  2. 計(jì)算圖像中每個(gè)像素點(diǎn)的梯度強(qiáng)度和方向
  3. 使用沒(méi)極大值抑制 (Non-Maximum Suppression) 消除邊緣檢測(cè)帶來(lái)的雜散響應(yīng)
  4. 使用雙閾值檢測(cè) (Double Threshold) 來(lái)確定真實(shí)和潛在的邊緣
  5. 通過(guò)抑制孤立的弱邊緣最終完成邊緣檢測(cè)

高斯濾波器

梯度和方向

非極大值抑制

雙閾值檢測(cè)

例子

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

# Canny邊緣檢測(cè)
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()

輸出結(jié)果:

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

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

標(biāo)簽:滄州 沈陽(yáng) 紅河 樂(lè)山 新疆 上海 河南 長(zhǎng)治

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《OpenCV半小時(shí)掌握基本操作之邊緣檢測(cè)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    同心县| 奎屯市| 沽源县| 化州市| 梁平县| 进贤县| 视频| 自治县| 玉田县| 邢台县| 甘孜县| 准格尔旗| 合水县| 密云县| 武夷山市| 泸水县| 溧阳市| 赫章县| 霍林郭勒市| 会同县| 恭城| 南靖县| 山东省| 利辛县| 乌拉特中旗| 滨州市| 沈阳市| 乌兰县| 金溪县| 莒南县| 蚌埠市| 垣曲县| 江北区| 当涂县| 巴青县| 龙口市| 内江市| 东乡| 石屏县| 腾冲县| 武乡县|