
Opencv
木木的学习之路
格物致知
展开
-
C++版本的KL变换
对KL的理解关键词大概可以总结为去相关。怎么讲呢?在阅读分析了别人的Matlab代码之后,发现有协方差和去均值操作,之后再去做类似卷积。题主习惯使用帧间差异,看到去均值立马反应去相关。实现流程暂时做两张图的KL变换,多张图也就for循环的max大一点,后边卷积核多一点。大致流程为:1、每张图像按照一定规则reshape,并看作一维数据,此后,图像暂时不需要行列的概念;2、求取每张图...原创 2018-11-21 10:16:03 · 1238 阅读 · 2 评论 -
Opencv 在绘制掩模时区域重叠问题
问题提出题主所从事领域为要地安防监控,一般对于广域监测系统,用户会在指定区域后才做有针对性的预警。由于惯性思维,题主会指定几个区域做测试,规避了其他可能性。昨天请技术支持过来测试软件,小姐姐就凌乱的新建小组,新建区域,在整个屏幕凌乱的画着所谓的指定区域,然后发现一个问题:在区域交叠的地方,物体并没有检测到。分析问题由于指定区域是在Opencv掩模后进行,针对这个问题,倘或区域未检测,一定...原创 2018-11-20 11:06:40 · 1487 阅读 · 0 评论 -
图像每行像素所占字节必须是4的整数倍
直入主题直接说结论吧:在使用Opencv时,内部规定,图像每行所占字节数必须是4的倍数,才能保证无误的转换;否则存在异常。问题描述题主项目中的图像存在些许像素的裁剪,一开始裁剪列数设置10没有任何问题,当设置其他时候,便存在异常。于是,题主展开搜寻式查找,这个过程不必描述了,流程存在多个变量,所以按个定位到异常位置。最终定位到一个这样的函数:void Forground(uchar C...原创 2018-11-29 14:25:41 · 4397 阅读 · 1 评论 -
腐蚀膨胀的理解和底层实现(有GPU实现代码)
问题提出最近组长让写一组技术分享,要求和嵌入式有所关联。所以一些很基本的操作,不能仅仅说调用Opencv即可,要知道,底层没有Opencv,有的只是加减乘除或与非。简单分享腐蚀和膨胀的理解……直观印象一般调用时,腐蚀多用于消除孤立点或者孤立区域;而膨胀用于连接一些临近区域。Opencv调用固然简单:erode(src,dst, element_small); dilate...原创 2018-12-06 10:54:19 · 871 阅读 · 2 评论 -
C++多线程图像处理
初衷最近有个图像处理模块,流程简单,实现冗杂;在同事指导下,开始接触多线程处理。先前有做过线程,也稍微接触GPU处理,但是这种整齐划一的多线程处理,还是最近才拉开帷幕,并且:一发不可收。笔者接触的项目对实时性要求很高,同时,处理图像尺寸比较大,怎么说呢,尺寸(640*22)*512,就是拼接全景图尺寸大概级别。这种大数据量的处理,即使简单的访问像素,都需要7208960次,虽然计算机具有...原创 2019-01-03 10:50:23 · 4228 阅读 · 2 评论 -
Opencv 创建多个滑动条
实话说,创建一个滑动条和创建多个没啥区别。具体说明和实现可以参照:OpenCV滑动条的使用详解最近有个时域滤波的算法,具体实现封装在类函数里。其中有几个参数需要调节,突然想起滑动条这个工具,于是拿起来用了。直接上代码:回调函数实现部分:void kMaxTemporalFilter(int, void *){ double d_kMax = (double)kMax/100; //...原创 2019-02-19 14:52:14 · 2369 阅读 · 0 评论