图像处理------Python之图像的求导以及图像的梯度图求取

先利用Sobel算子对图像进行求导(这里求导的方法有很多,也可以选择高斯算子求导,或者普瑞维特(Prewitt)算子等求导),然后利用公式 gm=(dx)2+(dy)2 g m = ( d x ) 2 + ( d y ) 2
使用opencv库函数,python程序如下:

img = cv2.imread('46.bmp', 0) # 后面参数为0表示取灰度图
img1 = cv2.cvtColor(img0, cv2.COLOR_BGR2RGB)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)#默认ksize=3
sobely = cv2.Sobel(img,cv2.CV_64F,0,1)
gm = cv2.sqrt(sobelx ** 2 + sobely ** 2)
plt.subplot(121),plt.imshow(img)
plt.subplot(122),plt.imshow(gm1)
plt.figure()

结果图如下:
图像处理------Python之图像的求导以及图像的梯度图求取_第1张图片

右图即为所求图像梯度幅值特征图

你可能感兴趣的:(Python,图像处理,图像处理,opencv,图像梯度幅值,Sobel算子,图像求导)