.net网站开发用的书籍,网站建设图片排版,30个适合大学生创业的项目,快手小程序开发教程Scharr算子
cv2.Scharr(img,cv2.CV_64F,1,0) 第一个参数#xff1a;当前的图像对象名称 第二个参数#xff1a;当前图像的深度#xff0c;通常情况下指定为-1#xff0c;表示输出和输入的深度是一样的#xff1b;cv2.CV_64F可以存6字节的大小#xff0c;为了方便后面的取…Scharr算子
cv2.Scharr(img,cv2.CV_64F,1,0) 第一个参数当前的图像对象名称 第二个参数当前图像的深度通常情况下指定为-1表示输出和输入的深度是一样的cv2.CV_64F可以存6字节的大小为了方便后面的取绝对值操作 第三个参数是否算X轴的水平方向若为1表示计算X轴方向若为0表示不计算X轴方向 第四个参数是否算Y轴的竖直方向若为1表示计算Y轴方向若为0表示不计算Y轴方向 与Sobel算子特别类似相比Sobel算子而言Scharr算子对结果的差异更明显一些
laplacian算子
cv2.Laplacian(img,cv2.CV_64F) 第一个参数当前的图像对象名称 第二个参数当前图像的深度通常情况下指定为-1表示输出和输入的深度是一样的cv2.CV_64F可以存6字节的大小为了方便后面的取绝对值操作 其他算子都是一阶导的感觉而laplacian算子提到了一个二阶导相当于一阶导的变换率 所以laplacian算子对一些变化会更加的敏感但是这个算子会对噪音点更加敏感这并不是一件好事因为噪音点并不是边界 通常都是与其他算子搭配使用不经常单独使用这个算子
import cv2
import numpy as npdef show_photo(name,picture):cv2.imshow(name,picture)cv2.waitKey(0)cv2.destroyAllWindows()img cv2.imread(E:\Jupyter_workspace\study\data/test1.png,cv2.IMREAD_GRAYSCALE)#Sobel算子分别计算X轴和Y轴方向的梯度然后加权求和
sobelx cv2.Sobel(img,cv2.CV_64F,1,0,ksize 3)
sobely cv2.Sobel(img,cv2.CV_64F,0,1,ksize 3)
sobelx cv2.convertScaleAbs(sobelx)
sobely cv2.convertScaleAbs(sobely)
sobelxy cv2.addWeighted(sobelx,0.5,sobely,0.5,0)#Scharr算子分别计算X轴和Y轴方向的梯度然后加权求和
scharrx cv2.Scharr(img,cv2.CV_64F,1,0)
scharry cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx cv2.convertScaleAbs(scharrx)
scharry cv2.convertScaleAbs(scharry)
scharrxy cv2.addWeighted(scharrx,0.5,scharry,0.5,0)#laplacian算子梯度算法
laplacian cv2.Laplacian(img,cv2.CV_64F)
laplacian cv2.convertScaleAbs(laplacian)#将原图sobel算子scharr算子laplacian算子合在一块看下效果
res np.hstack((img,sobelxy,scharrxy,laplacian))
show_photo(img-sobelxy-scharrxy-laplacian,res)效果如下