欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

opencv python Canny邊緣提取實(shí)現(xiàn)過程解析

 更新時(shí)間:2020年02月03日 11:09:49   作者:wbytts  
這篇文章主要介紹了opencv python Canny邊緣提取實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了opencv python Canny邊緣提取實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Canny是邊緣提取算法,在1986年提出的是一個(gè)很好的邊緣檢測器Canny算法介紹

非最大信號抑制:

高低閾值連接:

example

import cv2 as cv
import numpy as np


# canny運(yùn)算步驟:5步
# 1. 高斯模糊 - GaussianBlur
# 2. 灰度轉(zhuǎn)換 - cvtColor
# 3. 計(jì)算梯度 - Sobel/Scharr
# 4. 非極大值抑制
# 5. 高低閾值輸出二值圖像

# 非極大值抑制:
# 算法使用一個(gè)3×3鄰域作用在幅值陣列M[i,j]的所有點(diǎn)上;
# 每一個(gè)點(diǎn)上,鄰域的中心像素M[i,j]與沿著梯度線的兩個(gè)元素進(jìn)行比較,
# 其中梯度線是由鄰域的中心點(diǎn)處的扇區(qū)值ζ[i,j]給出。
# 如果在鄰域中心點(diǎn)處的幅值M[i,j]不比梯度線方向上的兩個(gè)相鄰點(diǎn)幅值大,則M[i,j]賦值為零,否則維持原值;
# 此過程可以把M[i,j]寬屋脊帶細(xì)化成只有一個(gè)像素點(diǎn)寬,即保留屋脊的高度值。

# 高低閾值連接
# T1,T2為閾值,凡是高于T2的都保留,凡是低于T1的都丟棄
# 從高于T2的像素出發(fā),凡是大于T1而且相互連接的都保留。最終得到一個(gè)輸出二值圖像
# 推薦高低閾值比值為T2:T1 = 3:1/2:1,其中T2高閾值,T1低閾值


def edge_demo(image):
  blurred = cv.GaussianBlur(image, (3, 3), 0)
  gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)

  grad_x = cv.Sobel(gray, cv.CV_16SC1, 1, 0)
  grad_y = cv.Sobel(gray, cv.CV_16SC1, 0, 1)

  # edge_output = cv.Canny(grad_x, grad_y, 30, 150)
  edge_output = cv.Canny(gray, 50, 150)
  cv.imshow("gray", gray)
  cv.imshow("Canny demo", edge_output)


def main():
  src = cv.imread("../images/Crystal.jpg")
  cv.imshow("demo",src)

  edge_demo(src)
  cv.waitKey(0) # 等有鍵輸入或者1000ms后自動(dòng)將窗口消除,0表示只用鍵輸入結(jié)束窗口
  cv.destroyAllWindows() # 關(guān)閉所有窗口


if __name__ == '__main__':
  main()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 中的判斷語句,循環(huán)語句,函數(shù)

    Python 中的判斷語句,循環(huán)語句,函數(shù)

    這篇文章主要介紹了Python 中的判斷語句,循環(huán)語句,函數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊

    python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊

    Python爬蟲常常會(huì)面臨自己ip地址被封的情況,也許不懂的讀者就只能等ip解封之后再進(jìn)行接下來的操作了,為什么自己不做一個(gè)Python模塊專門用于處理這種情況呢?文中對于讀者開發(fā)Python爬蟲肯定有一定的幫助,希望讀者耐心看下去,需要的朋友可以參考下
    2021-06-06
  • 書寫Python代碼的一種更優(yōu)雅方式(推薦!)

    書寫Python代碼的一種更優(yōu)雅方式(推薦!)

    Python是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,下面這篇文章主要給大家介紹了關(guān)于書寫Python代碼的一種更優(yōu)雅方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 使用selenium模擬登錄解決滑塊驗(yàn)證問題的實(shí)現(xiàn)

    使用selenium模擬登錄解決滑塊驗(yàn)證問題的實(shí)現(xiàn)

    這篇文章主要介紹了使用selenium模擬登錄解決滑塊驗(yàn)證問題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python動(dòng)態(tài)屬性與反射機(jī)制方式

    Python動(dòng)態(tài)屬性與反射機(jī)制方式

    深入探索Python中的反射機(jī)制和動(dòng)態(tài)屬性的細(xì)節(jié),對我們來說是編寫具有適應(yīng)性和高可擴(kuò)展性程序的關(guān)鍵,本篇文章旨在通過詳盡的概念介紹和精心設(shè)計(jì)的代碼示例,加強(qiáng)您對這些核心概念的把握,并助您在實(shí)踐中運(yùn)用自如
    2024-06-06
  • python實(shí)現(xiàn)計(jì)算器功能

    python實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟

    使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟

    這篇文章主要介紹了使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python 實(shí)現(xiàn)求解字符串集的最長公共前綴方法

    python 實(shí)現(xiàn)求解字符串集的最長公共前綴方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)求解字符串集的最長公共前綴方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python并行計(jì)算庫Joblib高效使用指北

    Python并行計(jì)算庫Joblib高效使用指北

    Joblib是用于高效并行計(jì)算的Python開源庫,其提供了簡單易用的內(nèi)存映射和并行計(jì)算的工具,以將任務(wù)分發(fā)到多個(gè)工作進(jìn)程中,這篇文章主要介紹了Python并行計(jì)算庫Joblib使用指北,需要的朋友可以參考下
    2024-08-08
  • 學(xué)python最電腦配置有要求么

    學(xué)python最電腦配置有要求么

    在本篇內(nèi)容中小編給大家整理的是關(guān)于學(xué)習(xí)python中電腦配置的相關(guān)文章,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07

最新評論