了解sobel运算输出

问题描述 投票:0回答:1

我尝试用sobel进行OpenCV操作来计算图像梯度。下图的xy中的渐变:

enter image description here

输出如下:

enter image description here

使用简单代码:

    sobelXY = cv2.Sobel(image, cv2.CV_64F, 1, 1, ksize=5)

看来输出图像中白色像素/周围的值小于黑色像素/周围的值。例如:

sobelXY[20][50] ~= 0

但是

sobelXY[100][700] ~= -150

这是什么意思?有没有一种方法可以表示黑色像素始终比白色像素占据较低值的输出?

python opencv computer-vision
1个回答
0
投票

给出像素值在[0,255]范围内的图像,Sobel运算符的输出可以在[-255,255]范围内。因此,您将需要标准化您的Sobel输出。您可以使用norm min_max方法执行此操作。

sobelXY = cv2.normalize(sobelXY, 
                dst = sobelXY, 
                alpha = 0, 
                beta = 1, 
                norm_type = cv2.NORM_MINMAX, 
                dtype = cv2.CV_32F)

这将规范化您的输入,使值介于[alpha,beta]之间

© www.soinside.com 2019 - 2024. All rights reserved.