C++
木木的学习之路
格物致知
展开
-
取整函数以及体素化、栅格化、直方统计
几种取整方式首先,常见取整函数常见三种:round,ceil,floor分别对应为:四舍五入取整、向上取整、向下取整。四舍五入取整比较常见,但用于区间统计问题划分区间时,通常需要向上或者向下取整。区间统计,一维离散数据为例,比如存在一组数组x,统计其各个区间bins的分布数量,那么是不是需要对每个数据进行这样的区间判断呢?if x(i) > bins(j - 1) &&x(i) <= bins(j)这种方法需要对每个变量遍历同时,对区间逐一遍历直至...原创 2021-07-07 19:39:57 · 613 阅读 · 0 评论 -
vc下遍历指定路径下的文件名
编写初衷拟在指定文件夹下新建txt文档并写入数据,采用简单的 0.txt 1.txt ……1001.txt格式命名,每次有新建文本需求时,首先遍历该路径下已经有的文件名所启用的数字,选择未启用的数字或者依照顺序依次命名。如图实例,已有文件名见图。希望代码可以做到,遍历路径后得到0-3,5-6的数字,然后启用4作为新文件名称,如果4.txt已经存在,那么将新建7.txt。流程针对以上目的,数据的代码处理流程主要有:1、输入指定的路径,获取该文件夹下指定类...原创 2020-07-04 11:55:39 · 382 阅读 · 1 评论 -
Opencv 创建多个滑动条
实话说,创建一个滑动条和创建多个没啥区别。具体说明和实现可以参照:OpenCV滑动条的使用详解最近有个时域滤波的算法,具体实现封装在类函数里。其中有几个参数需要调节,突然想起滑动条这个工具,于是拿起来用了。直接上代码:回调函数实现部分:void kMaxTemporalFilter(int, void *){ double d_kMax = (double)kMax/100; //...原创 2019-02-19 14:52:14 · 2266 阅读 · 0 评论 -
VS自带多线程并行处理
这个是同事介绍的,对底层代码的能力要求更低,甚至不需要自己创建线程。最典型也最简单的如下:const int size = 1000;int data[size];#pragma omp parallel{ #pragma omp for for(int i=0; i<size; ++i) data[i] = 123;}原文见:OpenMP共...原创 2019-01-24 16:36:41 · 1224 阅读 · 0 评论 -
C++多线程图像处理
初衷最近有个图像处理模块,流程简单,实现冗杂;在同事指导下,开始接触多线程处理。先前有做过线程,也稍微接触GPU处理,但是这种整齐划一的多线程处理,还是最近才拉开帷幕,并且:一发不可收。笔者接触的项目对实时性要求很高,同时,处理图像尺寸比较大,怎么说呢,尺寸(640*22)*512,就是拼接全景图尺寸大概级别。这种大数据量的处理,即使简单的访问像素,都需要7208960次,虽然计算机具有...原创 2019-01-03 10:50:23 · 4099 阅读 · 2 评论 -
腐蚀膨胀的理解和底层实现(有GPU实现代码)
问题提出最近组长让写一组技术分享,要求和嵌入式有所关联。所以一些很基本的操作,不能仅仅说调用Opencv即可,要知道,底层没有Opencv,有的只是加减乘除或与非。简单分享腐蚀和膨胀的理解……直观印象一般调用时,腐蚀多用于消除孤立点或者孤立区域;而膨胀用于连接一些临近区域。Opencv调用固然简单:erode(src,dst, element_small); dilate...原创 2018-12-06 10:54:19 · 798 阅读 · 2 评论 -
两种计时方式
程序调试后期,尤其即将发布release版本时,或者在优化速度时,测试各个模块所用时间是不可或缺的环节。分享两个常用的:1、C++版 clock_t startTime, endTime; startTime = clock(); fun.run(); endTime = clock();...原创 2018-12-05 10:42:42 · 952 阅读 · 0 评论 -
VS警告:不是所有的控件路径都返回值
今天写代码时候,编译发现这样一个友好提示:不是所有的控件路径都返回值。明明每种情况都考虑到了,为什么报这种警告?请教同事时,我说:if 和else 是对立面,他们难道没有涵盖所有情况吗?同事回答,也有抛出异常等情况。于是,把else{return false;}改为return false,警告解除了。...原创 2018-11-30 10:33:48 · 8121 阅读 · 4 评论 -
图像每行像素所占字节必须是4的整数倍
直入主题直接说结论吧:在使用Opencv时,内部规定,图像每行所占字节数必须是4的倍数,才能保证无误的转换;否则存在异常。问题描述题主项目中的图像存在些许像素的裁剪,一开始裁剪列数设置10没有任何问题,当设置其他时候,便存在异常。于是,题主展开搜寻式查找,这个过程不必描述了,流程存在多个变量,所以按个定位到异常位置。最终定位到一个这样的函数:void Forground(uchar C...原创 2018-11-29 14:25:41 · 4195 阅读 · 1 评论 -
Opencv 在绘制掩模时区域重叠问题
问题提出题主所从事领域为要地安防监控,一般对于广域监测系统,用户会在指定区域后才做有针对性的预警。由于惯性思维,题主会指定几个区域做测试,规避了其他可能性。昨天请技术支持过来测试软件,小姐姐就凌乱的新建小组,新建区域,在整个屏幕凌乱的画着所谓的指定区域,然后发现一个问题:在区域交叠的地方,物体并没有检测到。分析问题由于指定区域是在Opencv掩模后进行,针对这个问题,倘或区域未检测,一定...原创 2018-11-20 11:06:40 · 1363 阅读 · 0 评论 -
C++版本的KL变换
对KL的理解关键词大概可以总结为去相关。怎么讲呢?在阅读分析了别人的Matlab代码之后,发现有协方差和去均值操作,之后再去做类似卷积。题主习惯使用帧间差异,看到去均值立马反应去相关。实现流程暂时做两张图的KL变换,多张图也就for循环的max大一点,后边卷积核多一点。大致流程为:1、每张图像按照一定规则reshape,并看作一维数据,此后,图像暂时不需要行列的概念;2、求取每张图...原创 2018-11-21 10:16:03 · 1176 阅读 · 2 评论 -
海量房源筛选
抓取原始数据数据源:链家地址:西安语言:python准备工作:申请开发者代码如下,拷贝自别处,稍作修改:from bs4 import BeautifulSoupimport requestsimport csvimport redef getlocation(name):#调用百度API查询位置 bdurl='http://api.map.baidu.com/geoc...原创 2018-10-26 15:42:05 · 423 阅读 · 2 评论 -
深度学习CSV格式原始数据用于裁剪图像
初衷项目需要,需要做样本类别训练,即将每类样本分放在不同的文件夹,通过网络训练后得到模型,检测数据输出为所属类别;先前深度学习输出为类别和位置,需要遍历全局图像,比较耗时。问题分类别训练时,需要搜集大量样本并进行裁剪,这是一个很费时间和感情的事情;恰好在深度学习时,通过labelimage等工具得到样本数据,如下图所示:可否通过这些数据,将样本裁剪出来呢?于是乎,写了个脚本,并且实...原创 2018-10-18 15:40:15 · 1148 阅读 · 2 评论 -
VOC数据集用于制作tensorflow所需格式
VOC数据集VOC主要有三个重要的文件夹:Annotations、ImageSets和JPEGImages。分别是标注信息、分割信息和原始图片等。公开数据集有现成的对应文件,前人已经做好标注工作。在初步训练网络时,选择该组比较完备的数据,确实是一个比较快捷的方法。XML到CSV格式以下是一个标准的VOC格式写法,粘贴了一个VOCtrainval_11-May-2012文件夹下的XML格式...原创 2018-10-08 14:21:23 · 1505 阅读 · 0 评论 -
容器管理之map
使用Map初衷笔者在做红外视频多运动目标检测及跟踪,不论是考虑跟踪算法,还是精确检测目标位置,倘或能给每个目标建立一个固定特征,在后续的检测或者跟踪中,只要做好匹配就ok了。 那么我们需要这样一个容器,能同时保存目标序号和特征。 然后Map就被召唤出来。我不去翻看C++给的标准样板了,没有底层基础,看不懂,大概就是存放ID和value。 比较让人欣慰的特征是:ID和value的数...原创 2018-08-03 17:50:04 · 220 阅读 · 1 评论 -
opencv用于医学图像分割
初衷最近比较闲,跟同学聊天讲到他的课题:医学图像分割,提取左心室区域。我就好奇要了原始图片,发现超声图像果然比红外图像分辨率低,他指给我左心室所在区域。思路拿到这张图第一眼,脑海里蹦出无数个小想法:感兴趣区域为一个扇形,所以首先制作掩模;这种灰度分级模糊的图像,若想分类,可以试试Kmeans;后续可以分析特征,通过边界跟踪一类得到。具体流程1、原图通过k_means二分类,...原创 2018-10-12 14:10:53 · 4336 阅读 · 2 评论