Python_sobel边缘检测

参考:https://blog.csdn.net/remanented/article/details/83043402

https://blog.csdn.net/xiaowei_cqu/article/details/7829481

import cv2
import numpy as np
source = cv2.imread('test.jpg')
source = cv2.cvtColor(source,cv2.COLOR_BGR2GRAY)
cv2.imshow('source',source)
#source=source.astype(np.float32)

#sobel_x:发现垂直边缘
sobel_x =cv2.Sobel(source,cv2.CV_64F,1,0)
#sobel_y:发现水平边缘
sobel_y = cv2.Sobel(source,cv2.CV_64F,0,1)

sobel_x = np.uint8(np.absolute(sobel_x))
sobel_y = np.uint8(np.absolute(sobel_y))
np.set_printoptions(threshold=np.inf)
#print(sobel_x)

sobelCombined = cv2.bitwise_or(sobel_x, sobel_y)#按位或
sum = sobel_x+sobel_y

cv2.imshow('sobel_x',sobel_x)
cv2.imshow('sobel_y',sobel_y)
cv2.imshow('sobel_combined',sobelCombined)
cv2.imshow('sum',sum)

cv2.imwrite('sobel_x.jpg',sobel_x)
cv2.imwrite('sobel_y.jpg',sobel_y)
cv2.imwrite('sobel_combined.jpg',sobelCombined)
cv2.imwrite('sum.jpg',sum)

cv2.waitKey()

原图:

Python_sobel边缘检测_第1张图片

           sobel_x:                                                               sobrl_y

Python_sobel边缘检测_第2张图片Python_sobel边缘检测_第3张图片

 

sobel_combined                                                                     sum

Python_sobel边缘检测_第4张图片Python_sobel边缘检测_第5张图片

 

 

原图:

Python_sobel边缘检测_第6张图片

sobel_x:                                                                                                                                 sobel_y

Python_sobel边缘检测_第7张图片Python_sobel边缘检测_第8张图片

sobel_combines:                                                                                                             sum

Python_sobel边缘检测_第9张图片Python_sobel边缘检测_第10张图片

你可能感兴趣的:(Python)