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

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

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

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

  1,將傳進(jìn)來(lái)的圖片矩陣用算子進(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) # 無(wú)方向算子處理的圖像
 
# 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)文章

  • Python中等待5秒并暫停執(zhí)行的方法總結(jié)

    Python中等待5秒并暫停執(zhí)行的方法總結(jié)

    Python 具有各種功能和庫(kù)來(lái)創(chuàng)建交互式應(yīng)用程序,用戶可以在其中提供輸入和響應(yīng), 我們可以創(chuàng)建需要暫停應(yīng)用程序執(zhí)行的情況,本文主要和大家分享三個(gè)Python 中等待 5 秒并暫停執(zhí)行的方法,有需要的可以參考下
    2023-10-10
  • python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法

    python報(bào)錯(cuò)TypeError: Input z must be 

    大家好,本篇文章主要講的是python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2021-12-12
  • Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例

    Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python實(shí)現(xiàn)剪貼板的操作

    python實(shí)現(xiàn)剪貼板的操作

    本文主要介紹了python實(shí)現(xiàn)剪貼板的操作,通過(guò)輸入一個(gè)命令行參數(shù),實(shí)現(xiàn)將特定的一些文本復(fù)制到剪貼板的操作。感興趣的可以了解一下
    2021-07-07
  • Python實(shí)現(xiàn)連接MySql數(shù)據(jù)庫(kù)及增刪改查操作詳解

    Python實(shí)現(xiàn)連接MySql數(shù)據(jù)庫(kù)及增刪改查操作詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)連接MySql數(shù)據(jù)庫(kù)及增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了Python安裝PyMySQL模塊及使用PyMySQL模塊進(jìn)行mysql數(shù)據(jù)庫(kù)的連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • 詳解Python中的Array模塊

    詳解Python中的Array模塊

    這篇文章主要介紹了詳解Python中的Array模塊,Python中的array模塊是一個(gè)預(yù)定義的數(shù)組,因此其在內(nèi)存中占用的空間比標(biāo)準(zhǔn)列表小得多,同時(shí)也可以執(zhí)行快速的元素級(jí)別操作,例如添加、刪除、索引和切片等操作,需要的朋友可以參考下
    2023-04-04
  • python中pandas.DataFrame的簡(jiǎn)單操作方法(創(chuàng)建、索引、增添與刪除)

    python中pandas.DataFrame的簡(jiǎn)單操作方法(創(chuàng)建、索引、增添與刪除)

    這篇文章主要介紹了python中pandas.DataFrame的簡(jiǎn)單操作方法,其中包括創(chuàng)建、索引、增添與刪除等的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • Python實(shí)現(xiàn)簡(jiǎn)易的限流器介紹

    Python實(shí)現(xiàn)簡(jiǎn)易的限流器介紹

    大家好,本篇文章主要講的是Python實(shí)現(xiàn)簡(jiǎn)易的限流器介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Python正則表達(dá)式高級(jí)使用方法匯總

    Python正則表達(dá)式高級(jí)使用方法匯總

    這篇文章主要介紹了Python正則表達(dá)式高級(jí)使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法

    python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法

    這篇文章主要介紹了python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法,可以批量修改視頻文件名稱,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09

最新評(píng)論