学习笔记(33):Python+OpenCV计算机视觉-scharr算子及其函数使用
程序员文章站
2022-04-26 09:39:51
...
立即学习:https://edu.csdn.net/course/play/10552/234944?utm_source=blogtoedu
scharr算子
使用3*3的sobel算子时,可能不太精准
scharr算子的效果更好
dst = Scharr(src , ddpeth , dx , dy)
参数同sobel
等价于 :
dst = Sobel(src,ddpeth,dx,dy,-1)
import cv2
import numpy as np
img = cv2.imread('111.jpg',cv2.IMREAD_UNCHANGED)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
k = np.ones((5,5),np.uint8)
scharrx = cv2.Scharr(gray, cv2.CV_64F, 1, 0) #分别沿x,y方向计算梯度
scharry = cv2.Scharr(gray, cv2.CV_64F, 0, 1)
dstx = cv2.convertScaleAbs(scharrx) # 取绝对值
dsty = cv2.convertScaleAbs(scharry)
dst = cv2.addWeighted(dstx,0.5, dsty, 0.5, 0) #加权求和
cv2.namedWindow('dstx',cv2.WINDOW_AUTOSIZE)
cv2.namedWindow('dsty',cv2.WINDOW_AUTOSIZE)
cv2.namedWindow('dst',cv2.WINDOW_AUTOSIZE)
cv2.imshow('gray',gray)
cv2.imshow('dstx',dstx)
cv2.imshow('dsty',dsty)
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()