sobol 算子程序

1,sobel 图片原理

import numpy as np
import cv2 as cv

img=np.zeros((300,300,3),np.uint8)
#cv.imshow('a',img) #展示图片
#cv.waitKey(0) #无限等待
for i in range(300): #遍历每一个像素 使其图片中间生成白线宽
    for j in range(300):
        if i>=130 and i<=170:
            img[i,j]=255
        else:
            img[i, j] = 0
cv.imshow('a',img) #展示图片
cv.waitKey(0) #无限等待

2,调用库函数

import cv2 as cv

sobelx = cv.Sobel(img,cv.CV_16S,1,0) ## x方向对图像做sobol卷积
sobely = cv.Sobel(img,cv.CV_16S,0,1)# y方向对图像做sobol卷积
sobelx = cv.convertScaleAbs(sobelx)
sobely = cv.convertScaleAbs(sobely)#其中convertScaleAbs函数功能是将CV_16S型的输出图像转变成CV_8U型的图像。
sobelXY = cv.addWeighted(sobelx,0.5,sobely,0.5,0)#用来将两个图片进行融合。
cv.imshow("sobelXY",sobelXY)
cv.waitKey(0)
cv.imwrite('C:/Users/SongJinQiu/Desktop/zuoye/sobolXY.jpg', sobelXY)
 

你可能感兴趣的:(opencv,python,pycharm,计算机视觉)