没有看到你的源代码,所以不没法判断你的问题,大体推测是颜色空间的问题,Sobel算子一般在灰度分量上操作。参考代码如下:
import cv2
import numpy as np
color_image = cv2.imread('1.bmp')
color_image = cv2.GaussianBlur(color_image, (3,3), 0)
gray_image = cv2.cvtColor(color_image, cv2.COLOR_BGR2GRAY)
grad_x = cv2.Sobel(gray_image, cv2.CV_16S, 1, 0)
grad_y = cv2.Sobel(gray_image, cv2.CV_16S, 0, 1)
abs_grad_x = cv2.convertScaleAbs(grad_x)
abs_grad_y = cv2.convertScaleAbs(grad_y)
target_image = cv2.addWeighted(abs_grad_x, 0.5,abs_grad_y, 0.5, 0)
cv2.imshow('target_image', target_image)
cv2.waitKey(0)
cv2.destroyAllWindows()