#! usr/bin/env python # coding:utf-8 # 2018年7月2日06:48:35 # 2018年7月2日23:11:59 import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('number.jpg',0) # 其中,0表示將圖片以灰度讀出來。 #### 圖像邊緣處理sobel細節 sobelx = cv2.Sobel(img,cv2.CV_64F, 1, 0, ksize=3) # 利用Sobel方法能夠進行sobel邊緣檢測 # img表示源圖像,即進行邊緣檢測的圖像 # cv2.CV_64F表示64位浮點數即64float。 # 這裏不使用numpy.float64,由於可能會發生溢出現象。用cv的數據則會自動 # 第三和第四個參數分別是對X和Y方向的導數(即dx,dy),這裏1表示對X求偏導,0表示不對Y求導。其中,X還能夠求2次導。 # 注意:對X求導就是檢測X方向上是否有邊緣。 # 第五個參數ksize是指核的大小。 # 這裏說明一下,這個參數的前四個參數都沒有給誰賦值,而ksize則是被賦值的對象 # 實際上,這時可省略的參數,而前四個是不可省的參數。注意其中的不一樣點 # 還有其餘參數,有須要的話能夠去看,也可留言。 sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3) # 與上面不一樣的是對y方向進行邊緣檢測 sobelXY = cv2.Sobel(img, cv2.CV_64F, 1, 1, ksize=3) # 這裏對兩個方向同時進行檢測,則會過濾掉僅僅只是x或者y方向上的邊緣 ##### 圖像展現 # 展現上面處理的圖片,包括源圖像。 # 注意使用subplot和title方法 plt.subplot(2,2,1) plt.imshow(img,'gray') # 其中gray表示將圖片用灰度的方式顯示,注意須要使用引號表示這是string類型。 # 能夠用本行命令顯示'gray'的類型:print(type('gray')) plt.title('src') plt.subplot(2,2,2) plt.imshow(sobelx,'gray') plt.title('sobelX') plt.subplot(2,2,3) plt.imshow(sobely,'gray') plt.title('sobelY') plt.subplot(2,2,4) plt.imshow(sobelXY,'gray') plt.title('sobelXY') plt.show() --------------------- 做者:月下花弄影 來源:CSDN 原文:https://blog.csdn.net/qq_27261889/article/details/80891491 版權聲明:本文爲博主原創文章,轉載請附上博文連接!
其中,能夠看見不一樣算法的效果python