我使用以下代码使用OpenCV的filter2D函数实现一个简单的拉普拉斯滤波器:
tempkernel = np.array([[0,1,0],[1,-4,1],[0,1,0]])
kernel = np.array(tempkernel,np.float32)
mylaplaceda = cv2.filter2D(blurred,-1,kernel)
cv2.imwrite("outimage.jpg",mylaplaceda);
"模糊"是输入图像。现在,与OpenCV的内置Laplacian()函数相比,输出图像看起来看起来相同(当被视为图像时)。但filter2D似乎修剪了输入图像的负值:
使用拉普拉斯算子()的最大值:43
使用上述最大值:43
使用拉普拉斯算子()的最小值:-55
使用上面的最小值:0
有没有办法解决这个问题,或者我在这里做错了什么?即使使用带有负值的delta参数也会从最大值中减去,但最小值保持不变。