图像处理定位目标位置坐标

img


最近在做图像处理的项目 有没有朋友知道怎么直接定位到中间石块的位置,可以采用什么方法呢

如果有多个石头能不能都都定位到准确的坐标位置并且算出有多少个石块

二值化之后计算距离图试试

位置你是要精确的轮廓还是中心位置就行?这两个是两个难度的。
另外就是首先要把石块和那条线分开,如果要精确轮廓就比较难,如果只要大致位置,使用opencv的distanceTransform()这个函数进行距离变换,然后再threshold()阈值化就可以将面积比较大块的和线分开,然后findContours()找轮廓计算大致位置和统计个数。
至于我说的这几个函数,你自己百度下就有用法,上手实验一下就知道了

由于图中还有横向的蓝色线干扰,感觉二值化可能不太行。可以将图片分成若干个patch,计算每个patch中大于一定阈值的像素数,数量足够定位该patch。还有一种方法,取proposal,就是目标检测框

阈值处理然后形态学变化。

基于CNN 的目标检测

  1. Two-stage 方法

所谓Two-stage 的方法,指的是先通过某种方式生成一些备选框,然后对备选框里的内容进行分类,并修正备选框的位置的方法。由于包含了region proposal 和detection 两个步骤,因此称为two-stage(两阶段)方法。最开始的CNN 目标检测就是两阶段的。

R-CNN
R-CNN 是最早利用CNN 实现目标检测任务的方法,由rbg(Ross Girshick)等人提出。这里的R 指的是Region,R-CNN 即“Regions with CNN features”,即对不同的区域进行CNN 特征提取和分类。

R-CNN 方法pipeline
鉴于CNN 在整图分类任务中的优异性能,很自然的想法是将其用于目标检测领域,将CNN 强大的数据驱动的特征提取能力迁移到比整图分类更细致和复杂的任务中。R-CNN 的思路相对容易理解,它主要有以下几个步骤:

  1. 通过Selective Search(SS)方法筛选出一些备选的区域框(Region proposal)。

  2. 将这些备选的proposal 缩放到指定尺寸,用于输入CNN 进行分类(根据某种规则将各个proposal 分成正负样本)。其目的在于通过训练CNN,得到每个region proposal 的定长特征向量。

  3. 用每个proposal 中提取的特征向量训练SVM,得到最终的分类结果。

  4. 利用非极大值抑制(Non-Maximun Suppresion) 方法,对最终得到的bbox 进行筛选。

  5. 分类完成后,对bbox 进行回归,修正bbox 中的坐标的值,得到更精确的bbox。