我尝试了sobel操作和OpenCV来计算图像梯度。以下图像的x
和y
中的梯度:
输出如下:
使用简单代码:
sobelXY = cv2.Sobel(image, cv2.CV_64F, 1, 1, ksize=5)
似乎输出图像中以白色像素为单位的值小于以黑色像素为单位的值。例如:
sobelXY[20][50] ~= 0
但是
sobelXY[100][700] ~= -150
我想为这张图片绘制一张能量图,在这里我可以识别高变化和低变化。目前,如果我采取索贝尔的图像和检查值在相应的像素,我无法理解。这是因为在变化较大(用白色表示)的地方,梯度值小于零,而在变化较小(或没有变化)的地方,梯度值大于或接近零
给定像素值在
[0,255]
范围内的图像,Sobel操作符的输出可以在[-255,255]
范围内。因此,您需要规范化Sobel输出。您可以使用norm min\u max方法来执行此操作。你知道吗这将规范化您的输入,使值介于[alpha,beta]
相关问题 更多 >
编程相关推荐