日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python,Opencv cv2.Canny()边缘检测

發(fā)布時(shí)間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python,Opencv cv2.Canny()边缘检测 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python,Opencv的Canny邊緣檢測(cè)

    • 1. 效果圖
    • 2. 源碼
    • 參考

這篇博客將介紹Canny邊緣檢測(cè)的概念,并利用cv2.Canny()實(shí)現(xiàn)邊緣檢測(cè);

  • Canny邊緣檢測(cè)是一種流行的邊緣檢測(cè)算法。它是由約翰F開發(fā)的,是一個(gè)多階段的算法;
  • Canny邊緣檢測(cè)大致包含4個(gè)步驟:
  1. 降噪(使用高斯濾波去除高頻噪聲);
  2. 計(jì)算邊緣梯度和方向(SobelX、SobleY核在水平方向和垂直方向?qū)ζ交蟮膱D像進(jìn)行濾波,找到每個(gè)像素的邊緣梯度和方向);
  3. 非最大抑制(在得到梯度大小和方向后,對(duì)圖像進(jìn)行全掃描,去除任何不需要的像素,這些像素可能不構(gòu)成邊緣。檢查像素是否在其梯度方向的鄰域中是局部最大值。否則,將被抑制(歸零)。簡而言之,得到的結(jié)果是一個(gè)具有“細(xì)邊”的二值圖像。
  4. 滯后閾值(決定哪些邊是真正的邊,哪些不是。為此需要兩個(gè)閾值minVal和maxVal,任何強(qiáng)度梯度大于maxVal的邊都肯定是邊,小于minVal的邊肯定是非邊,因此丟棄。位于這兩個(gè)閾值之間的邊根據(jù)其連通性被分類為邊或非邊。如果它們連接到“確定邊緣”像素,則它們被視為邊緣的一部分。否則,它們也會(huì)被丟棄。)

選擇滯后閾值minVal和maxVal是得到正確結(jié)果的關(guān)鍵。

1. 效果圖

原始圖 VS Canny檢測(cè)效果圖如下:

2. 源碼

# Canny邊緣檢測(cè)是一種流行的邊緣檢測(cè)算法。它是由約翰F開發(fā)的,是一個(gè)多階段的算法;
# Canny邊緣檢測(cè)大致包含4個(gè)步驟:
# 
# 1.降噪(使用高斯濾波去除高頻噪聲);
# 2. 計(jì)算邊緣梯度和方向(SobelX、SobleY核在水平方向和垂直方向?qū)ζ交蟮膱D像進(jìn)行濾波,找到每個(gè)像素的邊緣梯度和方向);
# 3. 非最大抑制(在得到梯度大小和方向后,對(duì)圖像進(jìn)行全掃描,去除任何不需要的像素,這些像素可能不構(gòu)成邊緣。檢查像素是否在其梯度方向的鄰域中是局部最大值。否則,將被抑制(歸零)。簡而言之,得到的結(jié)果是一個(gè)具有“細(xì)邊”的二值圖像。
# 4. 滯后閾值(決定哪些邊是真正的邊,哪些不是。為此需要兩個(gè)閾值minVal和maxVal,任何強(qiáng)度梯度大于maxVal的邊都肯定是邊,小于minVal的邊肯定是非邊,因此丟棄。位于這兩個(gè)閾值之間的邊根據(jù)其連通性被分類為邊或非邊。如果它們連接到“確定邊緣”像素,則它們被視為邊緣的一部分。否則,它們也會(huì)被丟棄。)
# 
# 選擇滯后閾值minVal和maxVal是得到正確結(jié)果的關(guān)鍵。
import cv2
from matplotlib import pyplot as pltimg = cv2.imread('zly.jpg', 0)
edges = cv2.Canny(img, 80, 200)plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(edges, cmap='gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])plt.show()

參考

  • https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_canny/py_canny.html#canny

總結(jié)

以上是生活随笔為你收集整理的Python,Opencv cv2.Canny()边缘检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。