python-opencv-圖像邊緣檢測Sobel算子


Sobel算子對噪聲具有平滑作用,提供較為精確的邊緣方向信息,邊緣定位精度不夠高。當對精度要求不是很高時,是一種較為常用的邊緣檢測方法。 

import cv2

image = cv2.imread("wuhuan.jpg",1)
cv2.imshow('yuan',image)
image_x=cv2.Sobel(image,cv2.CV_64F,1,0,ksize=3)  #X方向Sobel
'''
參數2 ddepth:必選參數。表示輸出圖像的深度,-1表示采用的是與原圖像相同的深度。目標圖像的深度必須大於等於原圖像的深度
參數3和參數4 dx和dy表示的是求導的階數,0表示這個方向上沒有求導,一般為0、1、2
參數6 ksize:可選參數。用於設置內核大小,即Sobel算子的矩陣大小,值必須是1、3、5、7,默認為3。
'''
absX=cv2.convertScaleAbs(image_x)   # 轉回uint8
cv2.imshow("absX",absX)

image_y=cv2.Sobel(image,cv2.CV_64F,0,1,ksize=3)  #Y方向Sobel
absY=cv2.convertScaleAbs(image_y)
cv2.imshow('absY',absY)

#進行權重融合
dst=cv2.addWeighted(absX,0.5,absY,0.5,0)
cv2.imshow('dst',dst)

#cv2.imshow("dst",dst)
cv2.waitKey()

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM