关于OPENCV 访问外部传进来的Mat矩阵元素的问题

10 篇文章 1 订阅
5 篇文章 0 订阅

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点一直到现在,除了吃饭和陪媳妇儿爬楼梯的一个小时的时间。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值