我有这段代码可以在Python上正常工作。 我想在C / C ++中做同样的事情,但我不明白如何在C ++中运行内核:
kernel = np.ones((3,3),np.uint8)
opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)
内核和开放是Mat对象。
我也
mat1=np.uint8(mat1)
我不明白这个np前缀是什么。
答案 0 :(得分:1)
这一行:
kernal = np.ones((3,3)), np.uint8)
与在C ++中执行此操作相同:
Mat m = Mat(3, 3, CV_8UC1, cv::Scalar(1));
由于MaruisSiuram
表示np前缀适用于numpy库,因此不能在C ++中使用,只能使用OpenCV Matrix容器。
这一行:
mat1=np.uint8(mat1)
将mat1转换为类型uint8,可以这样做:
mat1.convertTo(mat1, CV_8UC1);