python canny函数_opencvpython cv2.Canny函数的输出Mat对象没有通道信息

我尝试在python中添加两个不同的Mat对象。

两个Mat对象都是二进制图像(CV_8U)。但是因为矩阵的大小不一样,所以我在添加它们时得到了一个错误。在

我使用numpy为通道生成一个Mat对象,如下所示:

diagonal = np.zeros((height,width,1))

cv2.line(diagonal,(0,0),(height,width), (255))

另一个Mat对象来自cv2。Canny:canny_edge = cv2.Canny(input_image, min_thr, max_thr)

附加代码:

final = cv2.addWeighted(canny_edge,1.0,diagonal,1.0,0)

尝试添加2个Mat对象时,出现以下错误:

error: (-5) When the input arrays in add/subtract/multiply/divide functions have different types, the output array type must be explicitly specified in function cv::arithm_op

我也尝试从numpy生成的矩阵中删除channels值,但是我得到了相同的错误。在

所以我试着打印频道,但是我得到了:

height, weight, channels = canny_edge.shape

ValueError: not enough values to unpack (expected 3, got 2)

编辑:我很抱歉,但米奇发布的答案对我没有帮助。由cv2.Canny生成的Mat对象没有频道信息。我知道这是一个二进制图像,但是当opencv试图将Mat对象的矩阵与一个具有通道信息的Mat对象相加时,它会感到困惑。在

你可能感兴趣的:(python,canny函数)