Img 是我的 RGB 输入图像
import cv2
import numpy as np
img = cv2.imread("Lenna.png")
black = cv2.cvtColor(img , cv2.cv.CV_BGR2GRAY)
现在我想使用 filter2D 对其应用 sobel 运算符
sobel = np.array([[-1 , 0 , 1] , [-2 , 0 , 2] , [-1 , 0 , 1] ])
dest = cv2.filter2D(black , -1 , sobel)
根据文档的 -1 参数是图像的深度,我相信它是 'uint8' 或 cv2.cv.CV_8U ,当我执行 np.max(dest) 时,它给了我 255 ,这是预期的。
但是,当我将深度指定为 cv2.cv.CV_32F 时,即
dest = cv2.filter2D(black , cv2.cv.CV_32F , sobel)
并做 np.max(dest) ,它给了我一个大于 255 的不同值。有人可以解释原因吗?