• 本系列历程启发于“禾路老师”的视频课程,学习到两个重要知识点:实战和自己的库!
  • 本系列历程多源于answer.opencv论坛的一些牛人的解答,作为小白只是代码的搬运工。

言归正传,请看项目要求:

  • 寻找下面这幅图片之中两条白线之间的距离
  • 得到每个点到对面线段的最小距离
  • 求解平均距离
  • 求解最中心距离

思路分析一:

  • 指定求解的点,寻找对面一条直线的相对于当求解点平行的切线,然后计算平行线之间的距离

思路分析二:

  • 指定求解点,默认到对面一点最短的距离就为目标距离,利用距离变换求解。

    (原因是因为两点之间线段最短)

代码实现

  • 本文利用第二种方法,第一种方法实现太麻烦,第二种相对容易很多。
  1. 连通域提取
  2. 距离变换
  3. 掩膜操作
  4. 存储YML
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main( int argc, const char** argv )
{Mat img=imread("twolines.jpg",IMREAD_GRAYSCALE);threshold(img,img,200,255,CV_THRESH_BINARY); // to delete some noiseMat labels;connectedComponents(img,labels,8, CV_16U);//连通域提取Mat result(img.size(),CV_32FC1,Scalar::all(0));for (int i = 0; i <= 1; i++){Mat mask1 = labels == 1+i;//提取标签信息,当满足条件返回255,不满足返回0Mat mask2 = labels == 1+(1-i);Mat masknot;bitwise_not(mask1,masknot);Mat dist;distanceTransform(masknot,dist, DIST_L2,5,CV_8U);dist.copyTo(result,mask2); //核心一句,直接提取距离信息}FileStorage fs("distCtr.yml",FileStorage::WRITE);fs<<"Image"<<result;fs.release();return 0;
}

参考资料:

  • opencv论坛
  • opencv官方文档
  • 禾路老师视频
  • 外国大神博客

转载于:https://www.cnblogs.com/wjy-lulu/p/9159795.html

《图像处理实例》之 曲线之间距离求解相关推荐

  1. gps两点距离 php,PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法

    <PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法>要点: 本文介绍了PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法,希望对您有用.如果有疑问,可以联系我们. 本文实 ...

  2. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法

    这篇文章主要介绍了PHP计算百度地图两个GPS坐标之间距离的方法,是针对百度地图接口开发的典型应用,需要的朋友可以参考下 本文实例讲述了PHP计算百度地图两个GPS坐标之间距离的方法.分享给大家供大家 ...

  3. 引入Hub再生的最短帧长及主机之间距离的最大值计算

    引入Hub再生的最短帧长及主机之间距离的最大值计算 @(计算机网络) 首先看一道题.相关的一个小的知识点想了很久,查了很多书,资料,最后只能暗自说一句,找到有效信息真难.历时三个小时求索不得,出去吃了 ...

  4. php经纬度之间的距离计算公式,golang与php实现计算两个经纬度之间距离的方法

    本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: package main import ( "fmt" & ...

  5. Python使用matplotlib可视化面积图(Area Chart)、通过给坐标轴和曲线之间的区域着色可视化面积图、在面积图的指定区域添加箭头和数值标签

    Python使用matplotlib可视化面积图(Area Chart).通过给坐标轴和曲线之间的区域着色可视化面积图.在面积图的指定区域添加箭头和数值标签 目录

  6. matlab如求曲线插值点,两条曲线之间的插值(matlab)

    好了朋友们.我有以下问题: 我有以下情节的数据. 因此该图的数据文件包含三列. 第二和第三个是x,y点.第一个是这些点所属的系统. 在这种情况下,红色的是20年的系统. 30年来的蓝色. 我想要找到的 ...

  7. 一张图说明 函数, 实例(对象), 原型之间的关系

    前言 很多初学者都对函数,实例(对象), 原型之间的关系理不清楚. 网上五花八门的文章很多,要么不知所云,要么是晦涩难懂. 本文意在用最简洁的语言跟示例让初学者理清楚这三者之间的关系,无需理会其内部原 ...

  8. 设置弹性框项目之间距离的更好方法

    本文翻译自:Better way to set distance between flexbox items To set the minimal distance between flexbox i ...

  9. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

最新文章

  1. Linux下升级python2.4-python2.7
  2. 群晖备份linux分区,黑群晖二合一系统无损扩充系统分区方法补充
  3. hdu 1281(二分图匹配+增广路)
  4. ping(团队作业)
  5. BBIAF的完整形式是什么?
  6. Maven搭建Nexus私服
  7. 如何选择学习主流程序语言(一)
  8. JointJs快速入门
  9. S5P6818 芯片手册 System Control 章节 理论篇
  10. 新时期文学专题研究【1】
  11. kappa一致性检验教程_R语言中的试验一致性检验分析 kappa检验和McNemar检验
  12. 计算机硬件的五大逻辑部分,计算机的硬件系统由五大部分组成(计算机由几部分组成)...
  13. 还在花钱抢票?12306 已屏蔽60款抢票软件!
  14. 京东评价系统更新190301
  15. 计算机无法完成更新如何处理,Win10更新过程中碰到“无法完成更新”怎么办
  16. 安卓屏幕坏了怎么把资料拷出来_选择苹果还是安卓呢?(老安卓转苹果11用户体验)...
  17. Windows环境黑客入侵应急与排查
  18. pantum打印机驱动安装m6506_一键完成 驱动轻松装_奔图 M6506NW_办公打印评测试用-中关村在线...
  19. [数据库实战]sql创建一个view视图
  20. bp神经网络原理 实现过程,bp神经网络的应用案例

热门文章

  1. Android之EasyPermissions源码解析
  2. C语言函数集(十三)
  3. Android XML 不常用属性
  4. (0054)iOS开发之制作静态库详解
  5. 南瓜派php,南瓜派_【顶级厨师】南瓜派_日志_美食天下
  6. 7.26T1四分图匹配
  7. ORM对mysql数据库中数据进行操作报错解决
  8. Visual Studio Code 配置 Markdown
  9. 单片机生成随机数的方法总结
  10. java异常分析;剖析printStackTrace和fillInStackTrace