最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python通過robert、sobel、Laplace算子實(shí)現(xiàn)圖像邊緣提取詳解

 更新時(shí)間:2019年08月21日 17:09:54   作者:成長(zhǎng)中的菜鳥zhy  
這篇文章主要介紹了python通過robert、sobel、Laplace算子實(shí)現(xiàn)圖像邊緣提取詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

實(shí)現(xiàn)思路:

  1,將傳進(jìn)來的圖片矩陣用算子進(jìn)行卷積求和(卷積和取絕對(duì)值)

  2,用新的矩陣(與原圖一樣大?。┤ソ邮彰看蔚木矸e和的值

  3,卷積圖片所有的像素點(diǎn)后,把新的矩陣數(shù)據(jù)類型轉(zhuǎn)化為uint8

注意:

  必須對(duì)求得的卷積和的值求絕對(duì)值;矩陣數(shù)據(jù)類型進(jìn)行轉(zhuǎn)化。

完整代碼:

import cv2
import numpy as np
 
# robert 算子[[-1,-1],[1,1]]
def robert_suanzi(img):
  r, c = img.shape
  r_sunnzi = [[-1,-1],[1,1]]
  for x in range(r):
    for y in range(c):
      if (y + 2 <= c) and (x + 2 <= r):
        imgChild = img[x:x+2, y:y+2]
        list_robert = r_sunnzi*imgChild
        img[x, y] = abs(list_robert.sum())   # 求和加絕對(duì)值
  return img
         
# # sobel算子的實(shí)現(xiàn)
def sobel_suanzi(img):
  r, c = img.shape
  new_image = np.zeros((r, c))
  new_imageX = np.zeros(img.shape)
  new_imageY = np.zeros(img.shape)
  s_suanziX = np.array([[-1,0,1],[-2,0,2],[-1,0,1]])   # X方向
  s_suanziY = np.array([[-1,-2,-1],[0,0,0],[1,2,1]])   
  for i in range(r-2):
    for j in range(c-2):
      new_imageX[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * s_suanziX))
      new_imageY[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * s_suanziY))
      new_image[i+1, j+1] = (new_imageX[i+1, j+1]*new_imageX[i+1,j+1] + new_imageY[i+1, j+1]*new_imageY[i+1,j+1])**0.5
  # return np.uint8(new_imageX)
  # return np.uint8(new_imageY)
  return np.uint8(new_image) # 無方向算子處理的圖像
 
# Laplace算子
# 常用的Laplace算子模板 [[0,1,0],[1,-4,1],[0,1,0]]  [[1,1,1],[1,-8,1],[1,1,1]]
def Laplace_suanzi(img):
  r, c = img.shape
  new_image = np.zeros((r, c))
  L_sunnzi = np.array([[0,-1,0],[-1,4,-1],[0,-1,0]])   
  # L_sunnzi = np.array([[1,1,1],[1,-8,1],[1,1,1]])   
  for i in range(r-2):
    for j in range(c-2):
      new_image[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * L_sunnzi))
  return np.uint8(new_image)
 
 
img = cv2.imread('1.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', img)
 
# # robers算子
out_robert = robert_suanzi(img)
cv2.imshow('out_robert_image', out_robert)
 
# sobel 算子
out_sobel = sobel_suanzi(img)
cv2.imshow('out_sobel_image', out_sobel)
 
# Laplace算子
out_laplace = Laplace_suanzi(img)
cv2.imshow('out_laplace_image', out_laplace)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

結(jié)果:

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

相關(guān)文章

  • OpenCV 邊緣檢測(cè)

    OpenCV 邊緣檢測(cè)

    OpenCV提供了許多邊緣檢測(cè)濾波函數(shù),這些濾波函數(shù)都會(huì)將非邊緣區(qū)域轉(zhuǎn)為黑色,將邊緣區(qū)域轉(zhuǎn)為白色或其他飽和的顏色。這篇文章主要介紹了OpenCV 邊緣檢測(cè),需要的朋友可以參考下
    2019-07-07
  • 解決pip install psycopg2出錯(cuò)問題

    解決pip install psycopg2出錯(cuò)問題

    這篇文章主要介紹了解決pip install psycopg2出錯(cuò)問題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • django admin實(shí)現(xiàn)動(dòng)態(tài)多選框表單的示例代碼

    django admin實(shí)現(xiàn)動(dòng)態(tài)多選框表單的示例代碼

    借助django-admin,可以快速得到CRUD界面,但若需要?jiǎng)?chuàng)建多選標(biāo)簽字段時(shí),需要對(duì)表單進(jìn)行調(diào)整,本文通過示例代碼給大家介紹django admin多選框表單的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • python數(shù)據(jù)可視化plt庫實(shí)例詳解

    python數(shù)據(jù)可視化plt庫實(shí)例詳解

    這篇文章主要介紹了python可視化數(shù)據(jù)plt庫實(shí)例,下面使用pycharm環(huán)境給大家詳細(xì)介紹,文中提到j(luò)upyter和pycharm環(huán)境的差別,需要的朋友可以參考下
    2021-06-06
  • django?python?獲取當(dāng)天日期的方法

    django?python?獲取當(dāng)天日期的方法

    這篇文章主要介紹了django?python?獲取當(dāng)天日期,在Python中,你可以使用datetime模塊來獲取當(dāng)前日期,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python實(shí)現(xiàn)多個(gè)Word文檔合并

    Python實(shí)現(xiàn)多個(gè)Word文檔合并

    在Python中,可以使用Python-docx庫來操作Word文檔,所以下面小編就為大家介紹一下如何利用Python-docx實(shí)現(xiàn)多個(gè)Word文檔合并功能吧,需要的可以參考一下
    2023-06-06
  • Python創(chuàng)建空列表的字典2種方法詳解

    Python創(chuàng)建空列表的字典2種方法詳解

    這篇文章主要介紹了Python創(chuàng)建空列表的字典2種方法詳解,需要的朋友可以參考下
    2020-02-02
  • Python通過websocket與js客戶端通信示例分析

    Python通過websocket與js客戶端通信示例分析

    網(wǎng)站大多使用 HTTP 協(xié)議通信,而 HTTP 是無連接的協(xié)議。只有客戶端請(qǐng)求時(shí),服務(wù)器端才能發(fā)出相應(yīng)的應(yīng)答, HTTP 請(qǐng)求的包也比較大,如果只是很小的數(shù)據(jù)通信,開銷過大。于是,我們可以使用 websocket 這個(gè)協(xié)議,用最小的開銷實(shí)現(xiàn)面向連接的通信。
    2014-06-06
  • Tensorflow簡(jiǎn)單驗(yàn)證碼識(shí)別應(yīng)用

    Tensorflow簡(jiǎn)單驗(yàn)證碼識(shí)別應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Tensorflow簡(jiǎn)單驗(yàn)證碼識(shí)別應(yīng)用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • python使用tkinter打造三維繪圖系統(tǒng)的示例代碼

    python使用tkinter打造三維繪圖系統(tǒng)的示例代碼

    Python?的?tkinter?模塊是一個(gè)常用的?GUI(圖形用戶界面)工具包,它能夠讓你創(chuàng)建窗口應(yīng)用程序,你可以使用它來構(gòu)建用戶友好的界面,包括按鈕、標(biāo)簽、文本框、列表框等各種控件,本文講給大家介紹如何使用tkinter打造三維繪圖系統(tǒng),需要的朋友可以參考下
    2023-08-08

最新評(píng)論

凤凰县| 甘洛县| 浙江省| 连山| 灵川县| 六安市| 封丘县| 天柱县| 广河县| 长武县| 于田县| 樟树市| 寿光市| 台州市| 阿荣旗| 阳泉市| 象山县| 乐东| 巴塘县| 武宁县| 竹山县| 宁晋县| 贡觉县| 安溪县| 元阳县| 呼伦贝尔市| 宁河县| 民县| 东宁县| 澄迈县| 佛坪县| 巴林左旗| 应城市| 白朗县| 六安市| 外汇| 宁河县| 襄汾县| 苏尼特右旗| 河间市| 呼伦贝尔市|