matlab图像标记交点,【图像处理】提取图片中的交点数据

1. 前言

前两天老板突然给了一幅图像数据, 让我提取出其中的交点信息, 图片是这样的:

0818b9ca8b590ca3270a3433284dd417.png

由于图像数据实在太大,就传了一张截图上来~~

2. 处理思路

2.1 基本需求

我们的需求实际上就是, 提取图像中黑色线段相交的部分(简单来说就是相交的点)

2.2 基本思路

检测图像中的黑色直线部分, 根据hough变换提取出相应的直线方程, 根据直线方程求出他们的交点, 即为我们所需要的点。由于处理的时候, 存在一定误差, 所以一般可以分为两个步骤, 先粗略的寻找一个交点, 然后对他的周围进行搜素即可。

2.3 基本流程

2.3.1 降采样

由于图像数据太大, 处理起来特别占用内存空间, 这里对他进行降采样处理,但是图像整体的形貌还是保持不变

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

2.3.2 二值化处理

因为我们需要提取的是板块交接处的黑线, 这部分的灰度值和其他部分的差别是比较明显的, 因而我们可以找到一个阈值, 将这部分分离出来,效果如下:

0818b9ca8b590ca3270a3433284dd417.png

2.3.3 canny 检测边缘

2.3.4 hough变换检测直线

在对图像进行边缘提取之后, 我们可以使用累计概率版本的hough变换获取图像中的直线数据

0818b9ca8b590ca3270a3433284dd417.png

2.3.5 直线合并

我们看到通过hough变换得到的直线的数量是非常多的,从物理角度我们可以认为相互贴合的直线实际上是一条

0818b9ca8b590ca3270a3433284dd417.png

2.3.6 求直线的交点

对我们提取得到的直线数据两两求他们的交点

0818b9ca8b590ca3270a3433284dd417.png

2.3.7 合并相近的交点

可以非常容易的发现, 空间中间隔非常近的点, 在物理空间中实际上是一个点

0818b9ca8b590ca3270a3433284dd417.png

2.3.8 初始匹配结果

0818b9ca8b590ca3270a3433284dd417.png

2.3.9 ROI 区域操作 (以第一个ROI区域为例)

2.3.9.1 ROI

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.2 二值化

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.3 边缘检测

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.4 直线检测

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.5 直线去重

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.6 交点数据

0818b9ca8b590ca3270a3433284dd417.png

2.3.9.7 交点去重

0818b9ca8b590ca3270a3433284dd417.png

2.3.10 实现效果

0818b9ca8b590ca3270a3433284dd417.png

3. 工程地址

4. 遇到的一些问题及参考资料

你可能感兴趣的:(matlab图像标记交点)