自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (9)
  • 收藏
  • 关注

原创 AAC和ADTS音频格式解析

AAC和ADTS音频格式解析包括将AAC打包成ADTS格式的思路梳理

2023-09-01 09:11:12 447

原创 OpenCV中Mat、Ipllmage以及Halcon中Hobject数据类型之间转换

OpenCV中Mat、Ipllmage以及Halcon中Hobject数据类型之间转换

2023-08-31 21:16:48 627

原创 基于Halcon的喷码识别方法

这个函数是对已经提取好的特征进行单个字符的区域分割,从而可以将每个字符的特征图像进行有效匹配,这一步非常重要,区域划分不好的话后面的识别率会变得很低,具体参加见下面解析。['area','width','height']:分割区域参数,这里面‘area’表示面积,width表示宽度,height表示高度,这两个向量表示area(面积)在0到868.87之间的范围,width(宽度)在0到30.38之间的范围,现在发现,在图像特征提取之后,进行字符区域分割,这一步出现了分割区域漏洞的情况,具体还在调试中。

2023-08-31 20:59:18 983

原创 音频基本知识

MIC内部设计,可以简单理解为一个电容,电容的一端是固定的,另一端是可动的,两端之间的距离和声音输入有关系,声音的大小、频率导致金属片震动产生幅度和频率的变化,如此,在电容这边就转换为电容电荷量大小与充电快慢,在MIC输出端就表示为一个幅度和频率有随着声音输入变化而变化的电信号。1)正常人能听到的最小声压级: 2E-5 Pa <-----> 0 dB。5)鼓风机(痛阀): 20 Pa <-----> 120 dB (痛阀)2)普通谈话声: 2E-2 Pa <-----> 60 dB。

2023-08-29 18:50:54 942

原创 AudioTrack播放音乐之getMinBufferSize

两个方面有关,在涉及到路由方面的内容时首先考虑流类型streamType,如STRATEGY_MEDIA和使用场景Usage,如AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY。2. 由native_get_min_buff_size函数通过JNI进入android_media_AudioTrack_get_min_buff_size函数。@返回值,无效参数则返回ERROR_BAD_VALUE,不能查询硬件输出性能则返回ERROR,顺利执行则返回得到的最小音频数据缓存空间大小。

2023-08-29 18:33:55 1094

原创 paddleOCR代码工程的MD模式改造

paddleOCR代码工程由MT模式改造为MD模式

2023-01-28 16:28:34 846

原创 Gstreamer中元件四种状态

Gstreamer中,元件有四种状态,每种状态都有其特定的意义。这四种状态为:1)GST_STATE_NULL: 默认状态,该状态将会回收所有被该元件占用的资源。2)GST_STATE_READY: 准备状态,元件会得到所有所需的全局资源,这些全局资源将被通过该元件的数据流所使用。例如打开设备、分配缓存等。但在这种状态下,数据流仍未开始被处 理,所以数据流的位置信息应该自动置0。如果数据流先前被打开过,它应该被关闭,并且其位置信息、特性信息应该被重新置为初始状态。3)GST_ST

2021-03-03 14:38:38 1025 1

原创 ffmpeg常用命令

yuv以H264编码为avi格式:ffmpeg -s 1920x1080 -pix_fmt yuv420p -i F:\YUV\1080p_yuv420p.yuv -vcodec h264 F:/TestVideo/1080p_x264.aviyuv以H264编码为h264格式:ffmpeg -s 3840x2160 -pix_fmt nv21 -i F:\AVDataSheet\YUV\4K_NV21.yuv -vcodec h264 F:/AVDataSheet/H264/test_4k.h

2021-03-03 14:34:34 830 1

原创 OpenCV4.2.0+VS2015+CMake3.19+Opencv_contrib4.2.0的编译和配置

实现步骤:编译OpenCV4.2.0 带 opencv_contrib 外部库:1)opencv版本号要与opencv_contrib版本一致;2)在where is the source code输入opencv地址/sources地址,在where to build the libraries输入保存编译结果的地址。3)勾选编译选项 “BUILD_opencv_world”,将在生成库文件时生成集合库;4)填入opencv_contrib路径到编译选项 “OPENCV_E

2021-03-02 11:20:13 467

原创 H323加载H264插件时出现找不到dll文件问题解决

问题描述:首先,根据官方文档进行H264插件加载的方法如下:================================================H.264 Visual StudioSimon Horne - Feb 2010================================================How to compile H.264 ...

2019-02-01 13:31:40 915

原创 使用Opencv时调用svm->load和VideoCapture报错的问题分析

问题 1:调用svm-&gt;load("SVM_HOG.xml"));时出现“Parsing error (Missing or invalid SVM type) in cv::ml::SVMImpl::read_params ... ...”的报错。原因分析:可能使用了opencv3.2的调用函数调用opencv2.x所生成的xml分类器导致的,其中opencv2.x所生成的xml有&l...

2019-02-01 11:26:41 3095 1

原创 H323plus添加h264等能力集的疑惑

首先,H323plus自带g.711的语音编码能力,而视频编码(H.261/H.163/H.264)的能力集需自己添加,经自己研究查资料,暂记录以下几点信息:1. H323plus可通过plugin的方式添加音视频编解码的能力集,即H323plus提供了相应插件接口的源代码,只需要编译通过并将其依赖的动态库(windows下为dll)添加到相应的目录(默认目录为:C:\ptlib_plugin...

2019-01-25 13:27:11 1391 1

原创 ETR290规范的理解

ETR290(ETSI TR-101 290 告警事件测量)为“DVB系统测试”指导文件,多应用于广电系统,是对MPEG-2 TS流参数的测试。ETR290为分为3级错误分析。1. 第一级共6种错误传输流同步丢失:连续检测到连续5个正常同步视为同步,连续检测到2个以上不正确同步则为同步丢失错误。传输流失去同步,标志着传输过程中会有一部分数据丢失,直接影响解码后的画面的质量;      个...

2018-12-26 18:44:40 1405

原创 使用Tesseract训练图片的方法

所需要的工具:Tesseract4.0(windows版本于2017年1月30号发布),据说windows版本会有很多诡异的Bug;java7以上版本,为安装jTessBoxEditor做准备;jTessBoxEditor,用于标定数据,此软件依赖于java;准备一些需要识别的目标图片,应该能够覆盖所有需要识别的字符; 训练新字体对图片的预处理和要求:同tesserac...

2018-12-15 15:54:14 3215

原创 使用Opencv的cv::findContours函数出现内存错误

问题描述:使用Opencv3.2.0的cv::findContours函数出现如下错误,在做运动跟踪项目以及喷码识别就遇到了类似错误,没有在意;这次进行马赛克检测项目,又遇到了类似错误,有花费了一天时间,在此记录一下。问题分析:经查阅资料以及实验分析,得出这是因为contours变量经过cv::findContours函数,在函数内部进行了内存分配,即在opencv的dll所在的线...

2018-11-08 20:07:19 1605

原创 "error LNK2001: 无法解析的外部符号 _sscanf " 问题 解决方法

问题场景:使用VS2015的软件开发环境中,在引用第三方文件库时,出现了 “libx264.a(ratecontrol.o) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 _x264_ratecontrol_new 中被引用” 等错误,如下图所示:原因分析:第三方库内使用了printf和scanf等较老的接口,在较新的VS开发环境中已经废弃,所...

2018-10-09 14:50:24 5417 4

原创 VS2015下安装Visual_Assist_x破解版

下载Visual_Assist_x破解版文件,其中VA_X.dll为破解补丁。下载地址在https://download.csdn.net/download/lifei092/10692783 点击VA_X_Setup2074.exe进行安装,默认安装目录在“C:\Program Files (x86)\Visual Assist” 使用下载文件中的破解补丁文件VA_X.dll替换安装目录和引...

2018-09-28 11:18:10 5112

原创 FFmpeg 解码音视频实例及碰到的问题记录(二)

最近项目开发中需要使用FFmpeg进行音视频的解码,在使用过程中遇到了一些问题对其进行记录。FFmpeg版本:FFmpeg3.4.1 下载地址如下:https://download.csdn.net/download/lifei092/106709921、音频解码:av_register_all(); 遍历注册所有的组件,包括各种编解码器、解复用器等等; AVFormatCont...

2018-09-17 13:56:52 1162 1

原创 FFmpeg 解码音视频实例及碰到的问题记录(一)

最近项目开发中需要使用FFmpeg进行音视频的解码,在使用过程中遇到了一些问题对其进行记录。FFmpeg版本:FFmpeg3.4.1 下载地址如下:https://download.csdn.net/download/lifei092/106709921、视频解码:av_register_all(); 遍历注册所有的组件,包括各种编解码器、解复用器等等; AVFormatCont...

2018-09-17 11:51:33 1331 1

原创 出现“Run-Time Check Failure #2 - Stack around the variable 'LoggerThread' was corrupted”问题分析

问题描述:调试程序过程中出现“Run-Time Check Failure #2 - Stack around the variable 'pParam' was corrupted”的问题。问题分析:通过查阅各种资料以及最终的解决方法得知,此问题是由于堆栈溢出或异常导致的,一般可优先考虑检查一下内存操作方面的函数如memcpy()、malloc()、memset()等函数。解决方...

2018-09-14 11:04:48 1368

原创 FFmpeg中AVFrame中data与linesize的联系

问题描述:通过以下代码获取到pFrame帧数据(即AVFrame结构体),将pFrame内的帧数据通过memcpy函数复制给已经分配好内存的Buffer中,发现总是报错,错误现象有两种首先是访问越界,其次是图像数据不对,其图像如下所示。//AVFrame用于存储解码后的像素数据(YUV) //内存分配 AVFrame *pFrame = av_frame_alloc(); i...

2018-09-13 10:55:23 6028

原创 STL中的deque队列使用erase删除元素出现问题

这是错误的使用方法:for (deque&lt;StateTable&gt;::iterator iter = standTable.begin(); iter != standTable.end();) { cv::Mat SegTemp; SegModel(iter-&gt;standRegion).copyTo(SegTemp); int nonZerosNum = co...

2018-09-03 14:08:48 5103 3

原创 解决同名dll冲突的问题

问题描述:软件同时集成两种IPC的SDK时,遇到dll同名的情况,因此在调用时会出现冲突的情况。解决方法如下:采用动态加载dll库的方法。#include "common.h"#include "iostream"#include "tchar.h"#include "windows.h"using namespace std;using namespace cv;...

2018-09-03 14:00:49 4368 1

原创 x264代码学习笔记(五):x264_slicetype_analyse函数

x264_slicetype_decide函数(代码所在位置为“x264-snapshot-20171128-2245-stable\encoder\slicetype.c”)的主要作用为:真正用于分析帧类型(I\P\B帧)调用顺序如下:x264_encoder_encode—&gt;x264_lookahead_get_frames—&gt;x264_slicetype_deci...

2018-09-03 10:28:31 1104 1

原创 x264代码学习笔记(四):B帧是何时被确定帧类型的?怎样进行编码的?

在上一篇博客《x264代码学习笔记(三):x264_slicetype_decide函数》里,在解读x264_slicetype_decide函数过程中,一直有这样的疑问,即B帧是何时被确定类型的,具体是怎样将视频帧由输入序列(播放序列)转换为编码序列呢? 为求解答案,我书写了一个实例进行代码调试,如下所示:#include &lt;assert.h&gt;#...

2018-08-30 14:19:45 2961 1

原创 基于Speex的音频调试实验(NS / AGC / AEC)

1. NS(噪声抑制)功能调试使用全向Mic进行实验 : 波形图(不加去噪功能):波形图(加去噪功能):从波形中可以看出,去噪效果较为明显。Speex的降噪功能,对于人声有噪声抑制效果,但偶尔会有“噼噼”声,而对于音乐播放 “噼噼”的声音出现频率较高;建议播放音乐时关闭此降噪功能。噪声消除模块需设置一个参数,即噪声抑制阈值(默认为-25dB),此值可控制噪声削弱强度。即...

2018-08-28 11:00:06 7298 1

原创 x264代码学习笔记(三):x264_slicetype_decide函数

x264_slicetype_decide函数(代码所在位置为“x264-snapshot-20171128-2245-stable\encoder\slicetype.c”)的主要作用为:分析帧类型(I\P\B帧)以及将视频播放序列转换为编码序列调用顺序如下:x264_encoder_encode —&gt;x264_lookahead_get_frames —&gt;x264_sl...

2018-08-27 11:58:38 1912 1

原创 码率控制基础知识

视频编码中,码流控制占有一定比例,它控制着码率输出是否符合预期,从而可以保证码流在网络传输中稳定,减少由于码率波动引起的视频卡顿等现象。下面举一个例子,解释一下码率控制是如何进行的。一个视频等待压缩,其参数如下:height : 1080 weight : 1920 fps: 25 目标码率:码率控制在2Mbit/s码率控制流程:首先,2Mbit/s = 2000000bit/...

2018-08-22 11:06:38 5122

原创 x264代码学习笔记(二):x264_encoder_encode函数

encode()函数中循环调用encode_frame()函数进行逐帧编码:调用x264_encoder_encode()函数完成一帧编码; 将编码后的码流载入码流文件中。static int encode_frame( x264_t *h, hnd_t hout, x264_picture_t *pic, int64_t *last_dts ){ x264_picture_t...

2018-08-21 16:07:31 6225 1

原创 x264代码学习笔记(一):main函数和encode函数

x264代码的主输入口:main()函数对软件进行多线程初始化 对命令行字符串进行编码格式检测,若不为UTF-8编码格式,则转换 解析命令行参数,并赋值给 x264_param_t 结构体和 cli_opt_t 结构体,以备后续使用 使用encode() 函数对视频数据进行编码压缩 关闭文件等内存清理操作int main( int argc, char **argv ){ ...

2018-08-16 15:28:03 1134 2

原创 字符识别处理流程

 

2018-08-13 14:12:53 1593

原创 Halcon训练分类器方法

Halcon分类器常识:HALCON自带的分类器不能识别汉字; 下图为Halcon自带的分类器种类(所在路径为:C:\Program Files\MVTec\HALCON-13.0\ocr):   Halcon的分类器有三种MLP、SVM、GMM;SVM:按照个人理解就是找到两类中间隔最近的某几个点,然后根据这几个点确定一个函数使得这几个点到这个函数的垂直距离最长;这就是它的...

2018-08-13 13:59:59 6818

原创 DirectSound播放PCM有杂音的解决方法

问题场景描述:使用DirectSound播放PCM,先点击暂停按钮再点击播放按钮后,大概率会有杂音出现播放音频单独放在一个线程中处理,程序基于MFC架构,有播放和暂停按钮。如下所示代码为音频播放线程,开始使用static DWORD offset = BUFFERNOTIFYSIZE; 代替pObj-&gt;m_DS_offset,这使得暂停回来之后offset的值继续上次的数值而不是重新赋值...

2018-08-09 15:36:13 3351

原创 视频播放Seek的基本原理

首先了解一下NAL包结构,如下图所示为NAL的包头结构,其中unit_type占用5个bit,表示帧类型如下表所示,其中IDR图像对应的unit_type数值为5,因此可以通过包头信息判断流数据是否为IDR图像。 下面开始介绍视频播放Seek的基本原理,如下图所示,为视频文件播放时间轴示意图,Start为开始播放视频的,End为视频播放结束,IDR帧为立即刷新帧所对应的播放时刻,S...

2018-08-03 10:27:47 7778 1

原创 使用winmm.lib库对windows录音设备采集录音数据

首先包含头文件以及库目录 #include &lt;mmsystem.h&gt;#pragma comment(lib, "winmm.lib")   初始化录音所需变量 WAVEHDR wHdr1[4]; // 采集音频时包括数据缓存的结构体HWAVEIN hWaveIn; // 输入设备句柄hWaveIn = NULL; // 录音设备句柄初始化   ...

2018-08-02 11:59:42 9913

原创 PCM音频格式的深入理解

PCM:其数据排列格式为左右声道每个样本点数据交错排列16bit的PCM数据是有负数的,至于负数的意义,我估计是代表电压的正负的,0值代表无声。如下为FFmpeg中所定义的音频格式:enum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, ///&lt; unsigned 8 bits ...

2018-07-10 19:32:03 53522 3

原创 H.264编码过程理解

    如下图所示,为H.264编码流图,首先,输入一组YUV数据,以一个GOP为例,每个GOP包含若干帧数据(IPPP结构或者IPBBP结构);然后,将GOP拆分为一帧输入到编码器中进行编码,一帧数据又包含至少一个Slice;其次,进一步将一帧图像拆分为多个Slice,一个Slice又包含若干个宏块;再次,将Slice拆分为若干个16*16大小宏块,则宏块即为编码的最小单元了,针对不同情况宏块仍...

2018-04-12 16:40:33 2441

原创 vs2015第一次生成dll库所遇到的问题

由于是第一次生成dll库,先普及一下dll库和lib库之间的联系和区别:http://www.cnblogs.com/TenosDoIt/p/3203137.html 这篇博客将其解释的已经非常好了,截取出来以作记录。首先两者都是代码共享的方式。静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是...

2018-03-20 19:27:35 2615

原创 Opencv3.2中的Opencl使用过程中遇到的困惑

我的开发环境为:VS2015 + OPencv3.2首先opencl是一个GPU加速技术,因此需要确认机器的显卡是否支持opencl,通过“TechPowerUp GPU-Z” 这款软件可以看出,如图中红色标注位置,本机是支持opencl技术的。OK,下面通过opencv自带的光流算法进行opencl的实验验证,确认其是否真的能够加快算法运算速度,代码如下:#include &lt;iostrea...

2018-03-15 17:59:05 5002 5

原创 imagewatch工具的使用方法

Imagewatch插件:这个对于opencv的开发者非常重要,可以直接查看图像矩阵里的图片,便于调试,目前可以支持vs2012至vs2015,其他的VS版本不确定支不支持(网上很多人说不支持)。本人使用的环境为Win10 + VS2015 + opencv3.2具体使用方法:1. 首先,设置断点;2. 运行程序,程序运行到断点处,这是为了保证变量内有存储像

2017-07-27 14:45:59 3899 4

H264视频编解码中Poc的详细解释信息

H264视频编解码中Poc概念的详细解释信息 结合x264代码对POC进行说明梳理以及解释如何计算poc值

2023-08-31

android.media.cts.CamcorderProfileTest#testGetWithId测试失败解决方法

android.media.cts.CamcorderProfileTest#testGetWithId测试失败解决方法

2023-08-31

OpenMax的基本框架

OpenMax的基本框架 适合OpenMax的初学者熟悉了解其基本的框架流程

2023-08-31

OMX的整体架构以及codec、YUV的基本概念

OpenMAX的整体架构以及codec、YUV的基本概念 包含了ES、PES、TS、demux等概念 包含了H264码流的一些基本概念,如VBR / CBR / FMO / RS / NAL等

2023-08-31

gst-launch工具播放视频的执行流程

gst-launch工具播放视频的执行流程 包括代码流程梳理

2023-08-30

gstreamer之playbin2 aac 音频播放流程

gstreamer之playbin2 aac 音频播放流程 音频播放代码流程梳理

2023-08-30

音频视频内容检测的一般方法

静音检测的一般思路方法 低音检测的一般思路方法 高音检测的一般思路方法 黑场/彩场检测的一般思路方法 静帧检测的一般思路方法 彩条检测的一般思路方法 马赛克检测的一般思路方法

2023-08-30

Halcon代码在VS2015下配置出现的问题记录

Halcon代码在VS2015下配置出现的问题记录 包括halconc.lib 和 halconcpp.lib相互冲突和Microsoft符号服务器等问题

2023-08-30

Halcon从windows移植到linux的方法

Halcon开发代码从windows移植到linux的方法

2023-08-30

FFMPEG4.4 windows x64 静态库

FFMPEG4.4 windows x64 静态库 支持x264、x265等多种编解码器 支持多种音频编解码器

2023-08-27

视频转码软件v1.0版

视频转码软件 1)支持MP4转avi格式 2)支持MP4转3gp格式 3)支持MP4转flv格式 其他格式相互转换不保证完全支持。

2023-08-27

install.rar

使用VS2015编译好opencv4.2 + opencv_contrib4.2 库文件,可用于开发人脸识别等功能

2021-03-02

DUI0801E_armasm_user_guide.pdf

arm_neon的使用指导文档,适用于使用neon指令集的程序开发者以及需要了解neon指令的初学者。

2020-04-28

H323相关资料

内部包含四个文档,包含openh323源码的介绍以及添加H264编解码能力集的参考文档等

2019-03-04

Visual Assist x

在win10操作系统下基于VS2015的开发环境中,安装Visual_Assist_x破解版插件,亲测可用。其他版本未进行测试。

2018-09-28

ffmpeg3.4.1 Win32 开发包

ffmpeg3.4.1的软件开发包,内含lib静态库文件、dll动态库文件和include头文件,适用于x86的32位开发平台使用

2018-09-17

包含啸叫的音源(用于音频啸叫处理实验)

音频信息:采样率48k,采样深度16bit,双声道(其中左声道无声,右声道声音正常,处理时可忽略左声道数据) 此音频资源包含啸叫噪声,可用于啸叫方面的处理实验

2018-07-10

opencv3.2.0在VS2015下的编译库(包含32位和64位)

包含window系统下32位和64位的opecv3.2.0编译库以及头文件,64位编译库对应在x64文件夹下,32位编译库对应在x86文件夹下,本人已在win10+vs2015的x64/x86开发平台上实验成功

2018-01-29

已编译的64位x264库

此文件为已经编译好的64位的x264库,可以VS平台直接调用使用,本人在vs2015的x64平台下实验成功

2017-12-11

imagewatch工具的使用方法

imagewatch工具的使用方法,适合于初次使用opencv的入门者

2017-10-23

空空如也

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

TA关注的人

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