Zedboardwebcam设计问题篇(六)opencv处理帧数据之算法改进

接着上一次的问题,先把label中显示四个重叠图像问题解决;

我把我的显示的图像给我同学看了一下,他说你把canny运算后显示图像的label关了看看,我很不屑的这么做了,结果如图:

 

label_2只能显示一小条,这就导致了图像只能显示一小条,至于为什么重叠显示,就要仔细看看QGridlayout控件的属性了。

首先来看Qt的布局管理器,他可以有效的管理窗口中子窗口部件,同时子窗口部件布局也受到其本身的大小策略(size policies)及其最大最小值影响。

每个方向有7个策略:Fixed,既不能被拉伸,也不能被压缩,保持在大小提示的尺寸;

Minimum,窗口部件不能被压缩得比大小提示更小;Maximum,不能被拉伸得比大小提示更大;

Preferred,最适合尺寸,如果需要,窗口部件能够被拉伸和压缩,0~无穷大;

Expanding,都可,更倾向于被拉伸,0~无穷大;MinimumExpanding,sizeHint~无穷;

Ignored,0~无穷;更多的介绍在这里:http://qimo601.iteye.com/blog/1413634

看了一下是LayoutRowStretch和LayoutColumnStretch属性决定的;修改了列属性,使label1和label2列宽比例一致;

修改完测试了一下,两个label果然一样大了,再把label2显示处理后的图像加上。结果,还是一样的!郁闷的!不是原因啊!

继续找原因。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

分析图像,可能和图像的采集有关系,或者缓存太小,只能存放一小部分,而且使用自己编写的调用底层v4l的API接口处理函数,运行起来图像会卡,这才是导致图像重叠的最主要原因吧。

由于上次那个问题在网友WICOBOY帮助下搞定了,所以果断用原来的OpenCV库来打开摄像头。

终于图像不卡了,边缘处理出来了,效果还挺不错的。来看看新的效果:

 

二话不说,直奔主题,我们是要检测指甲,立马想试试:

当然算法改进还是要继续啊,尤其时针对我们的项目:甲诊。

现在的指甲边缘提取如下:

想把月牙给检测出来,不过受光照因素影响比较大,怎么试都不太行啊。所以算法仍需改进啊。不过今天的结果让我君心情稍微好过了些,好久没有阶段性的成果了! 

至于改进,我第一个想到的是形态学,当然背景处理,光照处理这些也是必需的。话说又到周末了,又得周总结了!

原文地址:https://www.cnblogs.com/preorder69/p/3044747.html