自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dylan的博客

一个苦海中挣扎的大学狗

原创 Android NDK学习笔记(一)

一、构建系统 (一)Android.mk LOCAL_PATH: Android.mk文档必须以LOCAL_PATH变量的定义开头 CLEAR_VARS: 设置为clear-vars.mk片段的位置。包含Makefile片段可以清楚除了LOCAL_PATH以外的LOCAL _< NA...

2020-02-10 21:20:02

阅读数 37

评论数 0

原创 设计模式之三:单例模式 Singleton

在实际工作中,我们很多时候在对类对象的管理和使用上,希望自己定义的类只有一个实例化对象,这样才能保证,在整个流程中使用的都是同一个实例对象,从而保证流程的正确性,那么,我们要怎么样才能,让自己定义的对象只被声明一次呢? 我们不能简单地说,那我告诉,类的使用者,让他只实例化一次不就好了吗? 但是...

2020-02-01 10:20:33

阅读数 39

评论数 0

原创 Linux 下 C++ 遍历文件夹下的文件名

在C++中,我们一般学的时候都很少学到相关的文件夹方面的操作,相对来说,C++的文件夹操作也比较麻烦。而不像Python有OS模块,在操作文件夹方面简单易于上手。 下面我们直接看一下,C++遍历文件夹的代码吧: #include <string> #include <d...

2019-12-16 14:20:40

阅读数 31

评论数 0

原创 Fseek()与Ftell()函数的作用

Fseek() fseek函数功能是将文件指针移动到指定的地方,因此可以通过fseek重置文件指针的位置。 函数原型: int fseek(FILE *stream, long offset, int origin); 参数说明: stream : 待移动的FILE型指针变量 off...

2019-12-11 15:59:04

阅读数 36

评论数 0

原创 C++ 多线程--STL库 总结版 (详细)

最近在看C++ STL库的多线程部分,基本上看完了,现在就来做一下总结吧。 一、高级接口 1、多线程启动函数:std::async() 2、线程返回结果:std::future 3、共享变量:std::shared_future 二、低级接口 1、多线程...

2019-11-05 14:42:18

阅读数 84

评论数 0

原创 图像解析力算法—SFR(Spatial Frequency Response)源码分析(二)--完

在上一篇图像解析力算法—SFR(Spatial Frequency Response)源码分析(一)中介绍了SFR的几个重要函数,接下来我们看一下主流程和其他函数。 4、sfrProc作用:计算SFR数值的主流程函数 short sfrProc (double **freq, double ...

2019-09-11 09:16:44

阅读数 509

评论数 2

原创 图像解析力算法—SFR(Spatial Frequency Response)源码分析(一)

在前面的文章中,我们已经分析了SFR的算法原理与步骤,下面我们直接来分析源码,源码中主要的函数主要分为一下几个: 1、locate_centroids作用:定位每一行像素的矩心位置 unsigned short locate_centroids(double *farea, double *...

2019-09-04 11:35:26

阅读数 446

评论数 1

原创 图像处理之细化算法(Thinning Algorithm)C++实现

最近在实验室里遇到了一个问题,就是在有一张轮廓二值图的情况下,如何才能将轮廓进行细化,得到轮廓的骨架。 效果如图: 可以看到,右边图中的数字变瘦了,这就是细化算法的作用 下面我们来讲一下,Thining-Algorithm的算法原理。 一、八领域 我们先来介绍一下,八领域这一个概念 ...

2019-09-02 16:41:09

阅读数 292

评论数 0

原创 图像解析力算法—SFR(Spatial Frequency Response)原理分析(二)

在图像解析力算法—SFR(Spatial Frequency Response)原理分析(一)中,我们已经分析了SFR的前四个步骤,接下来,我们继续讨论以下的五个步骤 4、重新定位ROI,获得ESF 5、对获得的ESF进行四倍超采样 6、通过差分运算获得LSF 7、对LSF应用汉明窗 8...

2019-08-24 21:40:03

阅读数 822

评论数 7

原创 图像解析力算法—SFR(Spatial Frequency Response)原理分析(一)

在图像解析力算法—SFR(Spatial Frequency Response)概念理解一文中,我们已经讲解了在阅读SFR源码前必须了解的概念,下面我们来讲解一下,SFR算法的计算具体流程,然后结合源码进行分析, 获取计算公式。 先来看图,直观感受一下吧: 可以看到,SFR的具体步骤就是上...

2019-08-22 23:52:30

阅读数 1277

评论数 0

原创 图像解析力算法—SFR(Spatial Frequency Response)概念理解

最近这一个月在搞SFR算法--(空间频域响应),终于也算是搞出来了,网上关于SFR计算MTF的资料和博客也是比较少,现在就是总结一下,也算是方便后人,篇幅估计会比较长,会分篇慢慢写。 讲到SFR和MTF,刚入门的小伙伴,肯定会觉得一脸懵逼,我们先来解释一下这些基础概念 成像系统的解析力: ...

2019-08-21 15:04:11

阅读数 1342

评论数 1

原创 RGB转换NV21(YUV的一种储存格式)(代码实现)

实习的第二个任务是,将RGB图片转换成NV21(YUV的一种储存格式,也是在Android手机中最常见的图片 raw储存格式) 我们先来看看NV21 以及其他相似的存储格式吧~ NV21(YUV420)介绍 NV12和NV21属于YUV420格式(每2x2四个Y,共用一组uv),是一种tw...

2019-08-05 17:02:09

阅读数 816

评论数 0

原创 黑鲨科技图像处理实习生---面试题目总结

今天去黑鲨科技面试图像处理实习生,本来是说不用做题的,但是还是拿了一份校招的题目来给我做。。。 这里记录一下我不会的题目。。 1、RAW图像数据 和 MIPI图像数据的转换 大概题目意思就是:RAW的数据通常为10bit,存储RAW需要两个Byte,其中有4个bit位是空着的,这样就会浪费储...

2019-07-18 22:49:24

阅读数 125

评论数 0

原创 TX2安装caffe(从头开始,最全教程)

(大二时记录在有道云笔记的记录,现在开始搬运) 准备工作: 1.刷机。第一次使用TX2,那是需要刷机的。由于TX2自带的ubuntu系统比较老,不适合我们接下来的工作,所以我们需要升级TX2的系统。笔者使用的是ubuntu16.04。简单地说,就是用网线将TX2与一台ubuntu电脑连接,然后...

2019-07-17 17:30:20

阅读数 311

评论数 1

原创 使用YOLO(You only look once) 对灰度图(单通道)进行训练和识别

最近,实验室的比赛在识别上用到了灰度图,因为官方对颜色进行了修改,我们在没有官方数据的情况下,只能使用灰度图进行训练识别,以期望可以排除颜色的影响。但是在使用yolo训练单通道灰度图的时候出现了一些问题,在修改cfg配置文件后进行训练,一直出现,segmentation fault的错误。在百度上...

2019-07-12 22:47:19

阅读数 753

评论数 7

原创 Tensorflow导入训练模型进行识别(附代码)

最近在做李宏毅的深度学习的作业,导入模型的时候,发现,我在导入模型进行预测时,需要重新手动构建网络进行检测,这样显得十分不“智能”。之前在比赛中一直是使用这种方法,但是由于当初比较忙,并没有深究这个问题。现在,学习了一下,发现使用Tensorflow可以用两种方法进行预测。 首先,我们来讲一...

2019-06-23 20:51:25

阅读数 1942

评论数 0

原创 ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

在安装cudnn的时候,安装完成之后,importTensorFlow会出现如题中的错误, 这个报错要么是环境变量配置问题,要么是CUDNN连接建立问题。 1.环境变量 在~/.bashrc 的最后添加 export PATH=/usr/local/cuda/bin${PATH:+:${P...

2019-06-10 14:14:14

阅读数 2180

评论数 0

原创 TensorFlow-GPU与Python、CUDA的版本对应问题

最近在学校的服务器上安装TensorFlow-GPU遇到了一些问题,都是一些版本对应的问题,总结了一下 以上是版本的对应 详细的可以看一下连接: https://tensorflow.google.cn/install/source ...

2019-06-10 08:29:57

阅读数 2243

评论数 0

原创 error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow

最近在处理数据时,使用OpenCV将其转换图片时,出现了一个错误: error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertTo...

2019-06-09 21:59:59

阅读数 2862

评论数 2

原创 K-Nearest Neighbor理解笔记(KNN原理及代码实现)

目录 邻近算法(Nearest Neighbor) 概念原理 算法分析 代码实现 K近邻算法(K-Nearest Neighbor) 概念原理 算法分析 代码实现 优缺点分析: 邻近算法(Nearest Neighbor) 概念原理 邻近算法(Nearest ...

2019-06-05 09:09:23

阅读数 540

评论数 0

转载 Tensorflow中的dynamic_rnn和rnn有什么区别

在每一个train_step中,传入model的是一个batch的数据,在这一个batch内的数据一定是padding成相同的长度的。 那么,如果可以只在一个batch内部进行padding,例如一个batch中数据长度均在6-10这个范围内,就可以让这个batch中所有数据pad到固定长度...

2019-05-27 15:48:45

阅读数 149

评论数 0

原创 Docker学习笔记03:容器的基本操作&守护式容器

查看容器: docker ps [-a] [-l] 查看使用过的容器信息 docker inspect [name/ID] 查看容器的配置信息 自定义容器名: docker run --name=[name] 为自己的容器起名字 重新启动停止的容器: ...

2019-05-23 08:14:02

阅读数 10

评论数 0

原创 Dockers学习笔记02:Docker的基本组成

Docker的基本组成 Docker Client 客户端 Docker Daemon 守护进程 Docker Image 镜像 Docker Container 容器 通过镜像启动 启动和执行阶段 ...

2019-05-22 18:51:27

阅读数 67

评论数 0

原创 Docker学习笔记01:Docker的简介

什么是容器: 一种虚拟化的方案 只能运行相同或相似内核的操作系统 依赖于Linux内核特性:Namespace和Cgroups(Control Group) 大大减少了资源占用 什么是Docker: 将应用程序自动部署到容器...

2019-05-22 15:00:43

阅读数 16

评论数 0

原创 如何在Github 的README.md文件中添加图片

最近在写GitHub的README.md的时候想放图片,查了一下,应该是做法如下: 1、在GitHub上的仓库建立一个存放图片的文件夹,文件夹名字随意。如:img-storage 2、将需要在READNE.md中显示的图片,上传到img-storage文件夹中。 3、然后进入仓库的img-s...

2019-04-20 09:18:08

阅读数 665

评论数 0

原创 Effective C++条款21:必须返回对象时,别妄想返回其reference

当我们在返回对象的时候,如果return by value就会造成析构函数和构造函数的构建成本。 返回reference时,会有以下几个需要注意的问题。 1、在这里既是一开始就返回引用,也会创建出一个对象,因为一开始就期待它存在一个Rational对象在调用operator*前就存在,所以此时...

2019-04-19 21:21:49

阅读数 26

评论数 0

原创 在一台电脑上创建多个GitHub仓库的连接方式

之前一直对于如何创建多个GitHub仓库有所疑惑,这次整理了一下创建的步骤,作为记录,也希望可以帮到有需要的朋友。 环境:Windows10 步骤: 1、在GitHub上创建一个远程仓库,这一步,大家都很熟悉,不必赘述 2、创建一个新的公钥,对应新的仓库 #id_rsa_x为密钥名...

2019-04-19 09:36:29

阅读数 132

评论数 0

原创 Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value

条款20:宁以pass-by-reference-to-const替换pass-by-value 以下考虑类对象: class Person { public: Person(); virtual ~Person(); //... private: std:...

2019-04-09 19:18:57

阅读数 15

评论数 0

原创 设计模式之二:策略模式 Strategy

动机(Motivation): 在软件构建过程中,某些对象使用的算法可能多种多样,经常改 变,如果将这些算法都编码到对象中,将会使对象变得异常复杂; 而且有时候支持不使用的算法也是一个性能负担。 如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题? 模式定义: ...

2019-04-02 20:50:38

阅读数 17

评论数 0

原创 Github README.md 添加分割线、换行

1、分割线 在需要进行分割的两行之间添加单独的一行内容: **** 2、文本换行 今天在README.md写好内容时,发现它缩到一起了,不是我想要的格式,怎么办呢? 发现只要直接在要换行的语句最后打上2个空格,就是换行了。 ...

2019-04-02 20:47:51

阅读数 1886

评论数 0

原创 Effective C++条款18~19

条款18:让接口容易被正确使用,不易被误用 请记住: 1、好的接口很容易被正确使用,不容易被误用。应该在所有的接口中努力达成这些性质 2、“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。 3、”阻止误用“的方法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资...

2019-04-01 15:38:33

阅读数 27

评论数 0

转载 Github上编辑Readme.md的格式

https://blog.csdn.net/jdsjlzx/article/details/51772006 让你的README.md更加好看!

2019-03-28 20:21:44

阅读数 405

评论数 0

原创 设计模式之一:模板方法 Template Method

在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。 如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期的实现需求? ...

2019-03-26 23:25:38

阅读数 24

评论数 0

原创 Effective C++条款16~17

条款16:成对使用new和delete时要使用相同形式 其实这一条款十分简单,只需要记住即可,没啥特别的点需要说的。 在我们使用 new 创建对象时,就应该使用 delete 删除对象;在使用 new[] 创建对象时,应该对于地使用 delete[] 进行删除。 在使用new时会做两件事: ...

2019-03-18 21:42:05

阅读数 12

评论数 0

原创 Effective C++条款14:在资源管理类中小心copying行为

在条款13中,我们有了“资源获得的时机便是初始化时机”的RAII概念,在实现上,我们很多时候会选择使用auto_ptr和tr1::sharec_ptr指针,但是很多时候我们会发现,这两个指针也不是万能的,很多时候我们应该构建自己的——“资源管理类”。 所以,我们会构建出在构造函数中初始化,并...

2019-03-17 21:45:46

阅读数 32

评论数 0

原创 设计模式 序章(C++)

面向对象的设计模式的最大作用:             抵御变化! 重新认识面向对象: 理解隔离变化:    从宏观层面来看,面向对象的构建方式更能适应软件的变化,能够将变化带来的影响减为最小 各施其职:    一、从微观层面来看,面向对象的方式更加强盗各个类的“责任”   ...

2019-03-16 21:21:19

阅读数 21

评论数 0

原创 error C1041: 无法打开程序数据库“xxx\vc140.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用/FS

今天在visual studio2015 community上写代码的时候遇到了这样一个error: error C1041: 无法打开程序数据库“xxx\vc140.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用/FS 网络上找到的方法: 解决方案:修改项目属性 ...

2019-03-16 14:01:17

阅读数 1955

评论数 0

原创 Rplidar A2 屏蔽固定角度

Rplidar A2 的扫描角度图: 最近在使用Rplidar进行AMCL导航的时候,发现一个问题。由于雷达是固定在车的前面,雷达后面一部分位置被云台给遮挡住了。如图所示: 我们都知道,在ros的AMCL里,扫描得到的障碍区域都是对应一个膨胀系数的。这时为了让我们的车子在导航时,可以更...

2019-03-15 22:31:03

阅读数 220

评论数 7

原创 线性表:顺序表和链表存储的优缺点

顺序表和链表存储的优缺点 1.顺序表存储 原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度 优点:存取速度高效,通过下标来直接存储 缺点:1.插入和删除比较慢,2.不可以增长长度 比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新...

2019-03-14 22:53:37

阅读数 120

评论数 0

原创 Effective C++条款13:以对象管理资源

通常来讲,我们会使用new、delete来直接进行内存的管理。但是,由于很多原因,我们在这样使用的时候会造成内存的泄露。比如: 1、程序员在编程的时候new了一个内存,但是在后面编程的时候忘了进行delete,这样就会造成内存泄漏。 2、例如下列实例代码: void f() const {...

2019-03-11 02:03:46

阅读数 9

评论数 0

提示
确定要删除当前文章?
取消 删除