自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

_愤怒的石头_的专栏

专注于嵌入式开发,音频数字信号处理

  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

转载 我读过的最好的epoll讲解--转自”知乎“

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如...

2019-05-31 11:02:22 234 1

转载 C++ 11 Lambda表达式

C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声...

2019-05-23 11:45:45 284

转载 std bind 原理简单图解(清晰简明)

本文解释了bind 是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现.bind 可以用来将用户提供的需要一个参数的函数转换成不需要参数的函数对象。绑定的值(在这个例子中是123)存储在函数对象内并且会被自动传递给用户指定的函数: 参数绑定也可以用于将类成员函数转换成零参数的函数对象。猿类们都知道,非静态成员函数需要一...

2019-05-22 11:34:57 281

转载 局部对象和临时对象的构造和析构时机

在写这篇文章之前,一直没有注意过C++中临时对象何时调用析构的。直到最近看代码的过程中遇到这种情况。由于不了解临时对象何时调用析构函数,所以很不了解代码的实现。甚至还用局部对象的析构时机去看待。先讲讲自己遇到的情况:博主是在看mudo日志库时候遇到的,在mudo日志库中类Logger的析构函数回去获取输入的Buffer,并写入到文件或标准输出。实现在需要打印日志的地方会创建临时对象Logger...

2019-05-21 18:31:25 488

转载 Open Source: 开源软件许可的选择

世界上的开源软件许可有上百种之多,但其中最流行的只有6种:GPL、LGPL、Mozilla、BSD、MIT和Apache。其余的开源软件许可大多可以归类于这6种,然后再加上一些微小的差异。对于这6种开源软件许可,乌克兰程序员Paul Bagwell清楚地描述了它们的一些重要的约束:国内翻译如下:看了这两张图片,对于开源协议的选择可谓一目了然。

2017-09-11 09:19:24 673

转载 YUV4:2:2 UYVY图像旋转

原文:http://blog.csdn.net/zhangyonggen/article/details/48522593YUV4:2:2 UYVY 格式在内存中的存储方式为交织类型,内存中的存储方式为:UYVY UYVY UYVY...........,Y为亮度信息,UV为色度信息,YUV4:2:2是每两个像素点共用一对UV分量,每个像素点的Y分量是独立的,UV分量是共享的,所以

2017-06-28 14:13:42 1132

转载 相机模型详解

相机模型数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系以及这四个坐标系的转换。理想透视模型——针孔成像模型相机模型是光学成像模型的简化,目前有线性模型和非线性模型两种。实际的成像系统是透镜成像的非线性模型。最基本的透镜成像原理如图所示:其中 u 为物距, f 为焦距,v 为相距。三者满足关系式

2017-04-28 10:55:54 550

转载 坐标系之间的旋转平移变换与对应变换矩阵的关系

在摄影测量和计算机视觉中,经常会遇到空间坐标系之间的坐标转换问题,而两个坐标系之间的变换关系一般可以通过一个旋转矩阵R和一个平移向量T(或C)描述。因此,理解清楚坐标系之间旋转平移的转换过程与对应变换矩阵之间的关系十分重要。这个变换过程虽然简单,但是其间涉及到的参数的表述存在多种形式,常常失之毫厘谬以千里,给我们的理解和使用带来诸多不便,例如,旋转角正方向的定义,不同坐标轴的旋转顺序对应的旋转矩阵

2017-04-28 10:14:41 3418

转载 使用QtDBus作为Qt的进程通信

自从Qt-4.2版本引入D-Bus作为进程通信的一个方法之后,它就越来越有取代qcop的趋势。它不仅在应用层之间可以互相通信,还可以和内核做通信。比如某些硬件事件的发生,就可以通过D-Bus来交互。Linux系统中的蓝牙bluez正是使用了这种D-Bus.那我们就来看看在我们的Qt应用中怎么使用QtDBus功能。作为服务器端,我们需要做的工作有:1. 申请一个总线连接2. 在总线连

2017-02-07 14:56:56 1423

转载 C++ explicit关键字详解

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString  // 没有使用explicit关键字的

2017-02-06 09:54:10 1392

转载 交叉编译dbus模块到Qt 遇到的错误及解决

由于用qt来检测U盘插拔,要用dbus。pc调试通过后,发现到板子里没有dbus。原来默认情况下,编译arm版本qt时是不带dbus的,因此要重新交叉编译qt。我的配置:./configure -prefix /usr/local/arm/arm2-qt-4.8.1 -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-we

2017-02-05 11:28:11 464

转载 C++库介绍-标准库、类库

在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 标准库 标准库中提供

2017-01-10 19:52:49 974

转载 linux 内存泄漏查找

原文地址:http://blog.csdn.net/jinzhuojun/article/details/46659155C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题。如果crash的地方正是内存使用错误的地方,说明你人品好。如果crash的地方内存明显不是consistent的,或者内存管理信息都已被破坏,并且还是随机出现的,那就比较麻烦了。当然,祼

2017-01-05 20:12:48 3979

转载 理解 GNU Libtool

这篇文章与『理解 GLib 的单元测试框架』一文有些渊源,因为后者在几个示例中使用了 libtool 产生库文件与应用程序文件。田园时代我要写一个叫做 foo 的库,它提供一个什么也不做的函数。这个库的头文件为 foo.h:#ifndef FOO_H#define FOO_Hvoid foo(void);#endiffoo.c 是这个库的实现:#include "fo

2017-01-04 18:37:41 3042

转载 libtool: link: warning: library `XXXXX.la' was moved.出现的原因

libtool: link: warning: library `/home/admin/usr/lib/libjson.la' was moved.libtool: link: warning: library `/home/admin/usr/lib/libcares.la' was moved.libtool: link: warning: library `/home/admin/

2017-01-04 15:53:14 3314

转载 linux下的so、o、lo、a、la文件的区别

o: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库)lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息 1 libtool的工作原理 libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口

2017-01-04 15:20:44 565

转载 shell中$(( )) 与 $( ) 还有${ }的区别

$( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行。例如:[code]$ echo the last sunday is $(date -d

2017-01-04 15:20:01 199

转载 gcc中的-Wl,rpath=<your_lib_dir>选项

gcc编译链接动态库时,很有可能编译通过,但是执行时,找不到动态链接库,那是因为-L选项指定的路径只在编译时有效,编译出来的可执行文件不知道-L选项后面的值,当然找不到。可以用ldd 看看是不有 ‘not found’在你链接的库后面,解决方法是通过-Wl,rpath=,使得execute记住链接库的位置

2017-01-03 17:49:36 549

转载 详解Linux中监控CPU与虚拟内存运行信息的命令用法

mpstat  mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。 

2016-12-26 10:44:36 716

转载 linux下用/proc/stat文件来计算cpu的利用率(附源码)

注:本文思想借鉴博客http://www.blogjava.net/fjzag/articles/317773.html,源码为自己写的。本着尊重原创的目的请大家看他的博客,学的更多!proc文件系统介绍    /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息

2016-12-26 10:43:20 1232

转载 最小二乘法

一.背景   5月9号到北大去听hulu的讲座《推荐系统和计算广告在视频行业应用》,想到能见到传说中的项亮大神,特地拿了本《推荐系统实践》求签名。讲座开始,主讲人先问了下哪些同学有机器学习的背景,我恬不知耻的毅然举手,真是惭愧。后来主讲人在讲座中提到了最小二乘法,说这个是机器学习最基础的算法。神马,最基础,我咋不知道呢! 看来以后还是要对自己有清晰认识。   回来赶紧上百度,搜了下什么

2016-12-23 18:24:31 396

转载 RANSAC算法做直线拟合

RANSAC算法之前了解过相关的原理,这两天利用晚上闲暇的时间,看了一下RANSAC算法的Python代码实现,这方面的资料很多了,这里就不在重复。在分析该RANSAC.py代码之前,想用自己的对RANSAC的理解对其做下总结。在实际应用中获取到的数据,常常会包含有噪声数据,这些噪声数据会使对模型的构建造成干扰,我们称这样的噪声数据点为outliers,那些对于模型构建起积极作用的我们称它们为

2016-12-23 17:54:26 6627

转载 DSP 优化心得

一、 c6x的编译的常用选项(一)c6x的编译程序为“cl6x.exe”使用的方法Cl6x [options] [filenames]Cl6x:   编译程序Options:  编译选项Filenames:  C或汇编源文件说明:编译选项是一个字母或者两个字母,对大小写不敏感。编译选项的前面需要有一个“-”符号。一个字母的选项可以合并在一

2016-12-22 17:21:08 5555

转载 高效获得Linux函数调用栈/backtrace的方法

有四种方法可以获得Linux的函数调用堆栈,参见CALL STACK TRACE GENERATION。在这里简单罗列一下文中提到的四个方案:方法1 GCC内置函数__builtin_return_address方法2 Glibc中的backtrace函数方法3 Jeff Muizelaar实现的增强backtrace,除了函数名,还能获得代码行号方法4 libunwind

2016-12-13 15:41:16 1964

转载 使用SIGALRM信号量和sleep冲突的解决办法

系统中的一个模块需要频繁的获取系统时间,使用linux中内置的函数开销过大,因为需要的精度不是很高(毫秒级),索性用signal函数配合setitimer实现了个简易的全局时钟。但是后来发现,SIGALRM的中断信号回终止sleep,因为sleep就是用SIGALRM信号量实现的,得另想方案。这个替代方案就是POSIX中内置的定时器:timer_create()(创建)、timer_set

2016-12-13 15:35:03 1546

转载 使用cfdisk 新建一个分区

1 $ sudo cfdisk2 移动上下键选中空白盘3 移动左右键选择“New”4 填写新分区的大小5 移动左右键选择“Write”6 提示你输入yes or no 时,选择yes7 $sudo udevadm trigger8 查看分区$ cat /proc/partitions 9 如果没有出现你的新建分区,则$ sudo /etc/init.d/ud

2016-11-07 16:43:35 2651

转载 显示gcc内置宏

gcc -E -dM -

2016-10-11 13:27:32 398

转载 ARM嵌入式开发中的GCC内联汇编简介

ARM嵌入式开发中的GCC内联汇编简介嵌入式开发交流群280352802,欢迎加入!在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,C语言内嵌汇编的方式倒是一个不错的选择。然而,使用内联汇编的一个主要问题是,内联汇编的语法格式与使用的编译器直接相关,也就是说,

2016-09-24 11:30:45 422

转载 C语言遍历文件和目录

#include #include #include #include #include #include #include #define MAX_PATH_LENGTH 512#define MAX_FILE_EXTENSION 9unsigned long visit_dirs = 0;unsigned long visit_files = 0;void lis

2016-09-20 11:56:32 1585

转载 RVDS4.0上开发cortex A8 NEON程序

原文:http://blog.csdn.net/mobileaudio/article/details/5851049用RVDS4.0集成开发环境新建一个target为cortex A8 NEON的工程,即便是hellowolrd,也无法正常运行,然而自己写makefile调用amrcc的方式就可以。在水木等地咨询,虽然回复的网友众多,其中不乏一些高手,但是问题总是解决不了

2016-09-09 11:06:16 906

转载 hough变换是如何检测出直线的

1 直线是如何表示的?对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法。然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线。其中r为该直线到原点的距离,theta为该直线的垂线与x轴的夹角。如下图所示。2 如果坐标系中有多个点,又怎样识别出哪些点在一条直线上呢?使用hough变换来检测直线的思想就是:为每一个点假设n个方

2016-05-04 17:34:34 1747

转载 图像处理与计算机视觉 基础、经典以及最近发展

申明:本文非笔者原创,原文转载自:http://blog.csdn.net/liuyue2046/article/details/12658441***********************************************************************************************************************

2016-04-29 16:36:57 1141

转载 利用Hog特征和SVM分类器进行行人检测

之前介绍过Hog特征(http://blog.csdn.net/carson2005/article/details/7782726),也介绍过SVM分类器(http://blog.csdn.net/carson2005/article/details/6453502 );而本文的目的在于介绍利用Hog特征和SVM分类器来进行行人检测。        在2005年CVPR上,来自法国的研究人员

2016-04-28 17:57:59 599

转载 常用人脸库

人脸数据库汇总2009年08月07日 星期五 02:11 P.M.人脸数据库汇总■Annotated Database (Hand, Meat, LV Cardiac, IMM face) (http://www2.imm.dtu.dk/~aam/)■AR Face Database (http://cobweb.ecn.purdue.edu/~aleix/

2016-04-28 16:27:27 658

转载 用haar特征训练自己的分类器

OpenCV给我们提供了很多训练分类器的方法和程序。对于人脸检测的分类器训练叫做海尔训练,我们可以用这些方法创建我们自己的分类器。(一)数据准备:正样本(人脸)        我们需要收集只含有脸部的图像。The UMIST Face Database 有着类似Video般的连续脸部图像,不论是正脸的还是侧脸的。我以为训练这些图像能生成一个面部表情鲁棒性很好的脸部检测器。然而我想得

2016-04-28 16:15:52 3372 1

转载 OpenCV学习笔记大集锦

原文:http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/整理了我所了解的有关OpenCV的学习笔记、原理分析、使用例程等相关的博文。排序不分先后,随机整理的。如果有好的资源,也欢迎介绍和分享。1:OpenCV学习笔记作者:CSDN数量:55篇博文网址:http://bl

2016-04-28 10:38:28 632

转载 C语言编程优化运行速度

1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使

2016-04-27 15:36:25 842

转载 通用堆栈c语言版本(可以适应任何类型)

#include #include #include #define OK 0;#define ERROR -1#define OVERFLOW -2#define YES 1#define NO 0#define STACK_INIT_SIZE 100#define STACK_INCREMENT 10typedef int Status;typedef int T

2016-04-27 14:12:54 682

转载 三帧差分算法

本文系转载,原文地址:http://blog.csdn.net/carson2005/article/details/42218701int CallTime = 0;//定义调用次数计数器IplImage* BackGroundImage;//上一帧灰度图IplImage* DiffImage_1;//上一帧差分图的二值化图void ThreeFrmD

2016-04-27 11:13:54 4103

转载 YUV格式分析

本文非笔者原创,原文转载自:http://www.cnblogs.com/armlinux/archive/2012/02/15/2396763.htmlAndrew Huang 转载请注明作者及联络方式  在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解.   YUV的原

2016-04-27 10:44:59 296

object-c基础教程

object-c基础教程,初学者入门教程

2012-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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