whenand
助理工程师
助理工程师
  • 最后登录2020-06-05
  • 发帖数139
  • 金币1386枚
  • 贡献勋章0枚
  • 忠实会员
  • 社区居民
  • 原创写手
阅读:84回复:3

请教

楼主#
更多 发布于:2020-05-21 14:48
opencv里有没有类似HALCON的find_shape_model后产生x,y,θ,利用vector_angle_to_rigid算出一个矩阵的命令,没找到。最接近轮廓匹配的opencv的命令是matchShapes,但这个命令输出没有x,y,θ,就输出个HU矩值,想用这个求取刚性变换矩阵不能实现。
喜欢0

最新打赏:0人

混出个样来
tzj9987
技术员
技术员
  • 最后登录2020-06-05
  • 发帖数175
  • 金币339枚
  • 贡献勋章0枚
沙发#
发布于:2020-05-22 09:51
opencv匹配完后没有xyq?
acsen_1
技术员
技术员
  • 最后登录2020-06-05
  • 发帖数40
  • 金币685枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2020-05-22 17:19
好像不能了,没有角度出来
lzs1968
技术员
技术员
  • 最后登录2020-05-23
  • 发帖数74
  • 金币117枚
  • 贡献勋章0枚
  • 社区居民
地板#
发布于:2020-05-23 17:20
    //进行匹配和标准化
    matchTemplate(copyImg, tempImg, resultImg, MatchMetod);
    normalize(resultImg, resultImg, 0, 1, NORM_MINMAX, -1, Mat());
    //通过函数minMaxLoc定位最匹配位置
    double minValue, maxValue;
    Point minLocation, maxLocation,matchLocation;
    minMaxLoc(resultImg, &minValue, &maxValue, &minLocation, &maxLocation, Mat());
    //对于方法SQDIFF和SQDIFF_NORMED,越小的数值有着更高的匹配结果,而其余方法,数组越大匹配效果越好
    if (MatchMetod == CV_TM_SQDIFF || MatchMetod == CV_TM_SQDIFF_NORMED){
        matchLocation = minLocation;
    }
    else{ matchLocation = maxLocation; }
    //绘制出矩形,并显示最终结果
    rectangle(srcImg, matchLocation, Point(matchLocation.x + tempImg.cols, matchLocation.y + tempImg.rows)
        ,Scalar(0,0,255),2,8,0);
    rectangle(resultImg, matchLocation, Point(matchLocation.x + tempImg.cols, matchLocation.y + tempImg.rows), Scalar(0, 0, 255), 2, 8, 0);

    imshow(WN,srcImg);
    //imshow("效果图", resultImg);
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服