项目记录-回顾项目目前阶段

项目记录 06.15

“以每日记录的方式鞭策自己前行”
今日的项目记录是cv的水表检测,之前做的项目效果很不理想,反省自己有很多地方没有做好,心态的崩坏以及单打独斗的思维使自己没有能完成这个项目。今天的目的是整理好自己的实验步骤,明确问题出在哪些地方,以及想出一套比较好的解决方案。

图像处理方法一

本节主要记叙图像内容处理

归一化处理

最开始的图像处理,由于图像的大小不同,需要对图像的大小进行归一化处理(将图像尺寸进行缩放)笔者采用的matlab 中的imresize 函数(参数为"nearset",当时针对这个项目选择这个参数是有一点说法的,暂时忘记了)将图像统一处理至图像宽度为600。
需要注意的是,目前时间有限应先考虑将系统完成,具体图像质量放在系统优化环节完成。

表盘粗定位

由于图像采集表盘的位置各不同,所以需要先对表盘进行粗定位,应用matlab本身的检测圆函数(基于Hough 圆检测,注意hough 变换的原理)。

图像平滑处理

使用中值滤波器降低原来图像中原本噪声带来的影响。

图像主体提取

使用最大类间方差法(注意方法原理)获取最佳可将图像分为背景和目标的阈值。
基于这个阈值,对图像采用二值化处理,即可将目标采取出来。图像示例
显然表盘内冗余信息过多,需要进行进一步处理,如通过Hough 圆检测的方法精准定位表盘指针圆的位置。

图像处理方法二

经过查阅文献的方法发现水表表盘的指针主要有以下三种:
三指针,四指针,八指针。

其中八指针的水表指针中四指针为红色,四指针为黑色。针对红色指针在表盘中的独一特征,可以通过空间转换的方法提取出来。通过将颜色空间转化至YCbCr空间,提取Cr分量。

颜色空间转换

借助matlab 提供的函数,完成颜色空间的转换。

ycbcr = rgb2ycbcr(I);
Icr=ycbcr(:,:,3);

预处理操作

图像主体提取-》形态学处理(开闭操作)-》图像平滑处理 -》冗余信息处理 -》分割处理

冗余信息处理
借助matlab 中的bwareaopen() 函数删除图像中面积小于10的像素块。

分割处理
借助matlab 中的edge()函数,采用Canny 算子完成对图像的分割。
红色指针提取
以上为自己做到的最后的情况(不包括gui 图)

由于黑色指针与表盘颜色重合程度过高。需要采取其他方法来应对黑色指针,目前想到的方法是用Hough 变换检测圆的方法检测指针的区域,或者通过图像对称的方式在图像的左侧找到黑色指针。

以上两个方案暂时未论证,笔者今天在网上寻找相关的替代方案。

以下为吸引我的方案的网址。https://zhidao.baidu.com/question/327505861.html

图像处理方案三

通过与方法一的融合得到以下实验步骤:
图像灰度化-》中值滤波处理-》阈值分割-》二值处理-》取面积在一定区间的区域,其余区域用黑色替代。(使用bwareaopen 函数与 ismember 函数分别去除下限以下的区域和上限以上的区域)

图片示例
该方案的缺陷在于对于很容易将非指针带入,尽管相比于前二者效果好一些,完整提取所有指针,但噪声仍过多。

明天的计划,基于一二方案优化方案三得到可进行读数处理的图片。并尝试读数操作。

2019.06.16 晨

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值