自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (5)
  • 收藏
  • 关注

原创 H264码流和Mp4结构详解

一、概述本文讲述的是对H264编码且封装成MP4格式的视频流进行RTP打包过程时需要了解的一些基本知识。二、H264的基础知识1.H264的编码格式H.263 定义的码流结构是分级结构,共四层。自上而下分别为:图像层(picturelayer)、块组层(GOB layer)、宏块层(macroblock layer)和块层(block layer)。而与H.263 相比,H.264...

2018-08-07 17:17:54 31814

原创 OpenMAX编程 数据结构

导读该篇文章对OpenMAX的数据结构进行概要描述,包括OpenMAX的一些官方定义的头文件介绍,以及各种结构体数据介绍:比如OpenMAX组件结构体描述、PORT端口结构体描述。并对组件内部线程的大概结构以及组织方式进行介绍,本文章的目标是可以实现一个有基本功能的组件。该文章中提到的IL Client可以看作是组件的使用者,负责组件的创建、销毁、命令控制等等。注意本文章需要结合例程代码去...

2018-08-07 17:14:25 493

原创 OpenMAX编程 组件

导读: 本文聚焦于如何编程实现一个真正的组件,主题思想是介绍一个组件在编程sjo的模块组成以及如何编写,也会介绍下组件的初始化过程、组件之间的绑定过程、数据同步过程。在下一篇文章里面会对video、audio、clock等组件进行介绍。注意:该文章主要介绍组件内部代码的实现,其余部分简略介绍,实际上完整的组件还包括有组件类型的管理,组件绑定模块,组件句柄的分配,然后才是下面的各个组件的实现,...

2018-08-07 17:11:49 421

原创 OpenMAX大意 六 OpenMAX过滤器

  OpenMAX过滤器基类由OpenMAX直接继承,在omx_base_port.c中定义。    Filter组件含输入输出各一个端口。    Filter组件主要定义了BufferMgmtFunction方法,即Filter组件进行数据处理的通常行为。    函数主体是一个在OMX_StateIdle、OMX_StateExecuting或OMX_StatePause状态下,或OMX_...

2018-08-07 17:09:11 226

原创 OpenMAX大意 五 OpenMAX端口

 OpenMAX端口基类在omx_base_port.c中定义。1. 端口构造和析构    端口常用的数据包括    sPortParam - 端口参数,包含:      nPortIndex - 端口索引      nBufferCountActual - 端口的缓冲个数      nBufferCountMin - 端口最小缓冲个数      bEnabled - 端口使能      bPop...

2018-08-07 17:08:33 334

原创 OpenMAX大意 四 OpenMAX组件

OpenMAX组件基类在omx_base_component.c中定义。1. 组件构造和析构   1) 构造函数 Constructor    基类构造函数为omx_base_component_Constructor    这是基于C方式的构造函数实现,其中openmaxStandComp->pComponentPrivate指针指向可能的私有数据。私有数据指针原型为omx_bas...

2018-08-07 17:07:45 336 1

原创 OpenMAX大意 三 组件事件处理

三、组件事件处理当组件接收到一个OpenMAX事件时会调用EventHandlerEventHandler(OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_EVENTTYPE eEvent, OMX_OUT OMX_U32 nData1, OMX_OUT OMX_U32 nData2, OMX_I...

2018-08-07 17:06:53 323

原创 OpenMAX大意 二 组件缓冲处理

二、组件缓冲处理当组件完成数据输出(Fill Buffer)后会调用FillBufferDone回调函数以通知应用层准备数据(仅非Tunneled模式)函数C代码原型:FillBufferDone(OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer...

2018-08-07 17:05:24 485

原创 OpenMAX大意 一 应用线程基本流程

一、应用线程基本流程1. OMX_Init()2. 获取句柄,组件转到Loaded状态   OMX_GetHandle(out handle, in componentName, in appData, in callbacks);    其中callbacks结构包括三个回调函数指针(作用后文介绍):   1) EventHandler   2) EmptyBufferDone  ...

2018-08-07 17:04:25 635

转载 ONVIF协议网络摄像机(IPC)客户端程序开发(11):设备能力

1 专栏导读本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文章讲过的知识点(或代码段),后面文章不会赘述。为了节省篇幅,突出重点,在文章中展示的示例代码仅仅是关键代码,你可以在「专栏开篇」中获取完整代码。如有错误,欢迎你的留言纠正!让我们共同成长!你的「点赞」或「打赏」是对我最大的支持和鼓励!2 原理简介ONVIF协议接口由多个模块组成,...

2018-07-20 11:02:40 273

原创 嵌入式开发笔记

 计算机系统:  cpu    内存(ram)  硬盘(rom)  输入/输出设备(io)51单片机: 一个芯片具有CPU, 内存, ROM(flash),  IO口(用于接输入/输出设备)SOC: system on chip(一个芯片就具有一个计算机系统的组成). 高级版本的单片机单片机,SOC: cc2530这个芯片就是一个完整计算机系统: cpu, ram, rom, IO口...

2018-07-20 11:02:22 587

转载 ONVIF协议网络摄像机(IPC)客户端程序开发(11):设备能力

1 专栏导读本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文章讲过的知识点(或代码段),后面文章不会赘述。为了节省篇幅,突出重点,在文章中展示的示例代码仅仅是关键代码,你可以在「专栏开篇」中获取完整代码。如有错误,欢迎你的留言纠正!让我们共同成长!你的「点赞」或「打赏」是对我最大的支持和鼓励!2 原理简介ONVIF协议接口由多个模块组成,...

2018-07-20 11:00:45 230

原创 示例程序025--腐蚀与膨胀

 本文内容在《Leaning Opencv》一书的P135。   形态学操作:简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。 最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation)。 他们的运用广泛:o     消除噪声o     分割(isolate)独立的图像元素,以及连接(join)相邻的元素。...

2018-07-20 11:00:22 227

原创 示例程序044--特征描述

在下面的程序中:类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。 使用 DescriptorExtractor 接口来寻找关键点对应的特征向量. 特别地: 使用 SurfDescriptorExtractor 以及它的函数 compute 来完成特定的计算.将之前的vector变量变成向量矩阵形式保存在Mat中...

2018-07-20 11:00:03 302

转载 基于IMX6Q的XFM10621六麦驱动实现说明

本文主要针对在IMX6Q平台上实现的XFM10621六麦克阵列驱动做了一些介绍和说明,因为科大讯飞没有一个可参考的通用驱动,所以自己就在IMX6Q上实现了一下,相信可以给很多感兴趣和有需求的朋友作为参考,具体的驱动源码可以参看附件部分。 1. 环境介绍 硬件平台 IMX6Q Android版本 5.1 ...

2018-07-20 10:59:40 787

转载 基于ffmpeg读取实时码流

从内存中读取数据ffmpeg一般情况下支持打开一个本地文件,例如“C:\test.avi”或者是一个流媒体协议的URL,例如“rtmp://222.31.64.208/vod/test.flv”其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串传递给该函数就可以了。但其是否支持从内存中读取数据呢?这个问题困扰了我很长时间。当时在做项...

2018-07-20 10:58:10 3339 1

转载 基于ffmpeg的视频编解码,音频编解码播放

FFmpeg库简介avcodec:编解码,包含avformate: 封装格式处理avfilter:滤镜特效处理avdevice:输入输出设备avutil:工具库swresample:音频采样处理swscale:视频像素格式转换,缩放等##FFmpeg解码流程av_register_all(); //注册所有组件。AVFormatContext //获取上下文等信息//是封装格式上下文结构体,统领全...

2018-06-04 21:18:25 1176 1

转载 图像处理 C语言 文本图像的倾斜校正

程序功能是把一副倾斜的文字图像矫正过来 这个程序,我熬了一夜1、读取图像,创建结构元素for(i=0;i<img.height;i++) //img.height 原图高度{for(j=0,n=0;n<img.width*3,j<img.width;n+=3,j++) //对24位图像二值化处理img.width原图宽度{//gray 根据原图rgb值计算灰度值存在gray中gr...

2018-05-05 15:54:36 2685 2

转载 车牌定位--颜色分割

车牌定位是车牌识别中第一步,也是最重要的一步。由于中国车牌种类多样,颜色不一, 再加上车牌经常有污损,以及车牌周围干扰因素太多,都成为了车牌定位的难点。这里首先使用最简单算法来描述车牌定位,以及他的缺陷和改进。一、投影法1、车辆图像信息获取2、HSV颜色转换把RGB数据转换成HSV空间图像数据hsvzation(image,hsv,width,height);3、HSV颜色过滤设置蓝色车牌底色阈值...

2018-05-05 15:53:45 1959 1

转载 车牌识别--倾斜矫正

在车牌识别系统中, 车牌字符能够正确分割的前提是车牌图像能够水平,以至于水平投影和垂直投影能够正常进行。如果车牌倾斜没有矫正,那么水平投影和垂直投影,甚至铆钉都无法正常处理。所以,当车辆信息中获取车牌的第一步,应该是检查倾斜角度,做倾斜矫正。倾斜矫正,这里使用的算法:1、倾斜角度检测: 霍夫变换关于hough变换,可以参考前面图像处理博文:http://blog.csdn.net/liujia21...

2018-05-05 15:52:34 3545

转载 车牌识别C语言源码

欢迎加入群105060236讨论。2011-11-23更新本算法主要分成这几个部分,图像采集(即图像输入)、图像预处理(粗略定位车牌位置)、图像处理(精确确定车牌位置,去噪)、车牌字符分割(上下边界,左右边界确定)和字符识别。这是第二版的代码,包含三个文件,主要把匹配的模板从几十个图片合成一个数据库放到一个文件里面,即moban.h把函数放到另一个文件里面,即Def.h下图是在Linux下...

2018-05-05 15:48:31 7826 2

转载 Cv图像处理

注意:本章描述图像处理和分析的一些函数。大多数函数都是针对两维象素数组的,这里,我们称这些数组为“图像”,但是它们不一定非得是IplImage 结构,也可以是CvMat或者CvMatND结构。目录 [隐藏]1 梯度、边缘和角点1.1 Sobel1.2 Laplace1.3 Canny1.4 PreCornerDetect1.5 CornerEigenValsAndVecs1.6 CornerMin...

2018-05-05 13:53:57 5998

转载 canny边缘检测算法原理与C语言实现

 Canny算子是John Canny在1986年提出的,那年老大爷才28岁,该文章发表在PAMI顶级期刊上的(1986. A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8, 1986, pp. 679-698)。老大爷...

2018-05-04 10:49:14 7553 1

原创 Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算

可以用下面的命令将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。直接使用 ps Hh -eo pid,tid,pcp...

2018-03-09 10:09:41 8335

转载 MQTT入门篇

物联网(Internet of Things,IoT)最近曝光率越来越高。虽然HTTP是网页的事实标准,不过机器之间(Machine-to-Machine,M2M)的大规模沟通需要不同的模式:之前的请求/回答(Request/Response)模式不再合适,取而代之的是发布/订阅(Publish/Subscribe)模式。这就是轻量级、可扩展的MQTT(Message Queuing Teleme...

2018-03-07 16:31:49 514

原创 linux内核支持usb转串口,内存设备

配置内核 make menuconfig。选中device驱动Device Drivers ---->USB support--->USB Serial Converter support---->(1)USB Generic Serial Driver. (2)USB FTDI Single Port Serial Driver.(FTDI芯片驱动)(3)USB Prolifi...

2018-03-01 13:55:26 964

原创 QT常用类总结

使用Qt进行编程必须对 Qt 中常用的类有一定的了解。这些类可以分成两种:一种不是从 QObject 类派生出来的,用来表示各种基本的数据对象,如字符串、图像、字体等,这里将它们通称为基本类;另一种都是从 QWidget 类派生出来的,它们表示一个顶级窗口或者窗口部件,这里将它们统称为窗口类。                这里介绍的基本类包括 QChar, QString

2018-01-24 15:46:09 12928 1

原创 示例程序043--特征点检测

基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。     先介绍利用SURF特征的特征点检测,具体过程是:        1.使用 FeatureDetector 接口来发现感兴趣点。        2.使用 SurfFeatureDetector 以及它的函

2018-01-22 16:39:39 359

原创 示例程序042--给轮廓画出矩形和圆形边界

OpenCV支持大量的轮廓、边缘、边界的相关函数,相应的函数有moments、HuMoments、findContours、drawContours、approxPolyDP、arcLength、boundingRect、contourArea、convexHull、fitEllipse、fitLine、isContourConvex、minAreaRect、minEnclosingCircle、

2018-01-22 16:38:32 372

原创 示例程序041--Harris 角点检测子

图像特征类型:边缘:前面的文章已经涉及。角点 (感兴趣关键点):两个边缘的连接点,它代表了两个边缘变化的方向上的点。图像梯度有很高的变化。这种变化是可以用来帮助检测角点的斑点(Blobs) (感兴趣区域)如何寻找角点:由于角点代表了图像像素梯度变化,我们将寻找这个”变化”。考虑到一个灰度图像 角点检测子" style="margin:0px;

2018-01-22 16:37:15 207

原创 示例程序040--模板匹配

模板匹配的概念:    在源图片中寻找与模板图片最匹配部分的技术。 模板匹配如何实现:需要2幅图像:原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域模板 (T): 将和原图像比照的图像块    目标是检测最匹配的区域:                 为了确定匹配区域, 要滑动模板图像和原图像进行 比较 :

2018-01-22 16:36:33 537

原创 示例程序039--反向投影

什么是反向投影:简单的说:用输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的概率。(参考自:http://blog.163.com/thomaskjh@126/blog/static/370829982010112810358501/)应用举例:如果

2018-01-22 16:35:27 186

原创 示例程序038--H-S二维直方图

程序比较简单,代码及注释: // 046 绘制二维直方图 2.3版.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include usi

2018-01-22 16:34:18 481

原创 示例程序036--绘制直方图 (2.3版)

老的教程1.0的绘制直方图用到了CvHistogram,cvCalchist,cvGetMinMaxHistValue等一些老的数据结构和函数,而2.3的版本中,用不到CvHistogram这个比较难以理解结构,也用不到cvGetMinMaxHistValue这个函数,直接用Mat矩阵和normalize函数就可以解决问题,相对1.0简单的多。 主要函数:        c

2018-01-22 16:33:16 307

原创 示例程序037--直方图对比

直方图的比较函数为compareHist,函数返回值为两矩阵的相似程度,有4种不同的对比标准来对直方图进行比较:– CV_COMP_CORRELCorrelation 相关系数,相同为1,相似度范围为[ 1, 0 )– CV_COMP_CHISQRChi-Square 卡方,相同为0,相似度范围为[ 0, +inf )– CV_COMP_INTERSECTInterse

2018-01-22 16:31:56 161

原创 示例程序035--直方图均衡化(2.3版)

前面已经发过直方图均衡的程序,但是是1.0的老版本,里面用的是一些老的数据结构和函数,现在用2.3版的重新实现一下。    这个程序就是简单的直方图均衡化,不涉及绘制直方图。    代码很简单直观,用到函数:equalizeHist 代码:// 043 直方图均衡化 2.3.cpp : 定义控制台应用程序的入口点。//#include "stda

2018-01-22 16:30:32 213

原创 修改linux终端命令行颜色

最近因为工作需要,一直在使用linux操作系统(Cent5.0)。很讨厌linux终端命令行一成不变的风格,而且不容易与输出内容区分,很容易看花眼。于是上网找了找修改linux终端命令行颜色的方法,自己对那些方法进行了验证,最终找到了有效的修改linux终端命令行颜色的方法。(以工作在root用户下为例)  1.PS1  要修改linux终端命令行颜色,我们需要用到PS1,PS1是

2018-01-22 11:26:29 4191

原创 示例程序034--仿射变换

什么是仿射变换:一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移)所以,能够用仿射变换来表示:         旋转 (线性变换)         平移 (向量加)         缩放操作 (线性变换)     简单的说,仿射变换代表的是两幅图之间的 关系 (位置关系).  3. 通常使

2018-01-18 11:34:34 793

原创 示例程序033--重映射

重映射:把一个图像中一个位置的像素放置到另一个图片指定位置的过程.为了完成映射过程, 有必要获得一些插值为非整数像素坐标,因为源图像与目标图像的像素坐标不是一一对应的.    简单的说就是改变图片的位置(左,右,上,下,颠倒)。程序比较简单,主要是x,y坐标的重映射,以及函数remap()的使用  void remap(InputArray src,

2018-01-18 11:33:45 299

原创 示例程序032--Canny边缘检测(2.3版)

代码及注释:// 039 Canny边缘检测 2.3版.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include using namespa

2018-01-18 11:32:47 206

mpu9250九轴算法-纯c语言

基于mpu9250的九轴算法,融合了重力加速度和磁力计来实现四元素换欧拉角的算法,可以避免因为高速运动而产生的不稳定,是属于纯c语言的源代码,不依赖于任何外库。

2018-01-02

基于mpu9250的磁力计校准算法

基于mpu9250的磁力计算法,纯c语言,可移植多个平台,属于独立校准源代码,里面有旭泰的demo模板,校准数据可以是三维或者刘伟数据,当然,维度越高校准的数据的准确率越高。

2018-01-02

卡尔曼滤波算法-纯c语言源码

基于mpu9250数据滤波的卡尔曼滤波算法,纯c语言的,可移植多个平台使用,不依赖任何外界库

2018-01-02

gsoap+wsdl

最新gsoap工具和全部wsdl

2017-11-29

cjson文档解析以及使用例子

对一些json格式的文档在linux上的解析,方便开发一些需要的同学开发用,以及一些高嵌入式的同学进行库的移植,减少一些琐事的烦恼。

2017-09-25

空空如也

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

TA关注的人

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