C++基本是小白,大神莫要嘲笑啊。。
使用cv.HoughCircle的源码模板,又增加了一种方法圆弧检测方法:
arcs = cv.HoughCircles(tmpEdge, tmpArcMask, cv.MY_ARC_DETECTION, tmpMinSh, tmpMinYSc, param1=jitterNum, param2=11, minRadius=tmpMinRad, maxRadius=140)
传参考圆弧模板的时候,总是识别不出来。说来也奇怪,新增的C++代码已经在i7的ubuntu电脑上运行成功了,但是将Opencv源码拷贝到jetson上编译后,死活出错。
正确的访问方法:
对于一个三维的ndarray来说,在python中访问元素,就是简单的:
a[1,2,3]
就能得到相应位置上的元素,但是在c++中就稍微有所区别。将这个三维矩阵在python中传递给Opencv的函数时,数据结构没变,但是访问元素的时候需要使用:
yArc = arcMap.at<Vec<uchar,140>>(iRadS, iShear)[x]
我的第三维是个Vector,长度是140,数据类型是uchar。
有争议的访问方法:
yArc = arcMap.at<uchar>(iRadS, iShear,x)
这就是之前在i7平台上使用的方法,访问是成功的,但是在jetson上不行。。。原因暂时不明。。
记录一下,祭奠我逝去的一整天时间,从早上9点一直到现在,除了吃饭和陪媳妇儿爬楼梯的一个小时的时间。