计算图像的梯度是在进行图像处理时经常用到的方法,但是这玩意自己手写未免效率低而且容易出错。OpenCV里集成了相应的函数,只不过用的人好像并不多导致我找了半天才找到。姑且记一下以备日后使用。...计算像素梯度的绝对值
这个用到了cv2.magnitude方法,具体用法如下:
sobelx=cv2.Sobel(im,cv2.CV_64F,1,0,ksize=3)#1,0表示只在x方向求一阶导数
sobely...对于Sobel函数有个注意点,他的第二个参数是扩展了像素的数值范围,因为梯度是有方向的,所以sobel函数得到的是有正有负的值,所以相当于扩大了取值。...通常情况下我们会加上下面的函数来得到梯度的绝对值:
sobelx=cv2.convertScaleAbs(cv2.Sobel(im,cv2.CV_64F,1,0,ksize=3))
在外面套一个取绝对值的函数...计算像素梯度的方向
这个用到了cv2.parse方法,具体用法如下:
phase= cv2.phase(cv2.Sobel(im,cv2.CV_64F,1,0,ksize=3),cv2.Sobel(im