猫咪瞎跳_iOS 2016-06-22 04:01 采纳率: 0%
浏览 9601

Opencv HoughLinesP 如何找到我想要的线条

我用Canny边缘检测之后用的HoughLinesP,得到了很多线条,
如图:图片说明

我想要得到笔记本四条边上的线条,请问大神们这该怎么计算?

我现在的算法是这样的:
vector lines;
HoughLinesP(canny, lines, 1, CV_PI / 180, thresholdd, 30, 10);

//通过比较直线上两个点得到水平和竖直两种线条。
    //x1 - x2 的绝对值 > y1 - y2 判断为水平线条,反之为垂直线条
    //然后把水平和垂直线条分别放到一个数组里面,水平线条取y轴最大最小那条线
    垂直线条取x轴最大最小那条线。
    //这种算法导致计算不精确。 大神们帮帮我。谢谢了

// vector horizontals, verticals;
for (int i = 0; i < 20; i++) {
Vec4i v = lines[i];
double delta_x = v[0] - v[2], delta_y = v[1] - v[3];
Line l(cv::Point(v[0], v[1]), cv::Point(v[2], v[3]));
line(LinesMat, l._p1, l._p2, Scalar(255, 0, 0), 1 , CV_AA);
if (fabs(delta_x) > fabs(delta_y)) {
horizontals.push_back(l);
} else {
verticals.push_back(l);
}

  • 写回答

1条回答 默认 最新

  • jian_cheng_90 2016-06-22 06:34
    关注

    首先针对书本颜色做一次过滤,只保留目标颜色区域,再试试霍夫检测,如果效果还不好,可以再做一个轮廓跟踪,contour 的函数,滤除一些噪声区域后,在霍夫检测

    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示