摘要: 总结学习下图像处理方面基础知识。 这是第一篇,简单的介绍下使用OpenCV的三个基本功能: 图像的读取 图像的显示 访问图像的像素值 然后概述下图像噪声的类型,并为图像添加两种常见的噪声:高斯噪声和椒盐噪声。 最后,使用中值滤波和均值滤波来处理带有噪声的图像。 OpenCV基础 在OpenCV中,完 阅读全文
posted @ 2017-02-06 22:31 Brook_icv 阅读(25687) 评论(0) 推荐(9) 编辑
摘要: 2017年的第一篇博文。 本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb Rice和Exp Golomb的基本原理 C++实现了一个简单的BitStream库,能够方便在bit流和byte数字之间进行转换 C++实现了Golomb Rice和Exp Golomb的编码 阅读全文
posted @ 2017-01-18 18:29 Brook_icv 阅读(25315) 评论(3) 推荐(11) 编辑
摘要: 在处理音频的时候的有时候需要特定分贝(如 10dB)的音频波形,本文主要介绍如何生成特定分贝数的音频文件。有以下几个方面: 简单的生成特定分贝的波形 模拟频率和数字频率 波形生成 代码的封装 正弦波、方形波、锯齿波、三角波的生成 生成特定分贝特定形状的波形 简单的生成特定分贝的波形 波形可以通过一个 阅读全文
posted @ 2016-12-19 15:13 Brook_icv 阅读(6237) 评论(0) 推荐(0) 编辑
摘要: 编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 。 1. 编译WxWidgets 1. Audacity使用wxWidgets作为GUI的框架,Audacity2.1.2需要wxWidgets 3.0.2,所以在编译Audacity之前需要编译 阅读全文
posted @ 2016-12-14 16:38 Brook_icv 阅读(1491) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符。但用户可以使用 来指定 阅读全文
posted @ 2016-12-07 16:36 Brook_icv 阅读(62436) 评论(8) 推荐(57) 编辑
摘要: `AVPacket`保存的是解码前的数据,也就是压缩后的数据。该结构本身不直接包含数据,其有一个指向数据域的指针,FFmpeg中很多的数据结构都使用这种方法来管理数据。 的使用通常离不开下面4个函数: 使用 来创建一个 的实例,但该函数并不会为数据分配空间,其指向数据域的指针为NULL。 通常调用 阅读全文
posted @ 2016-12-06 18:26 Brook_icv 阅读(6816) 评论(1) 推荐(1) 编辑
摘要: 说到多线程编程,那么就不得不提 并行 和 并发 ,多线程是实现并发(并行)的一种手段。 并行 是指两个或多个独立的操作 同时进行 。注意这里是 同时进行 ,区别于 并发 ,在一个时间段内执行多个操作。在单核时代,多个线程是 并发 的,在一个时间段内轮流执行;在多核时代,多个线程可以实现真正的 并行 阅读全文
posted @ 2016-12-05 17:10 Brook_icv 阅读(156670) 评论(11) 推荐(103) 编辑
摘要: 想实现个循环缓冲区( "Circular Buffer" ),搜了些资料多数是基于循环队列的实现方式。使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了。偶然间看到分析Linux内核的循环缓冲队列 的实现,确实极其巧妙。 主要有以下特点: 保证缓冲空间的大小为2的次幂,不是的向 阅读全文
posted @ 2016-11-16 16:58 Brook_icv 阅读(4034) 评论(2) 推荐(1) 编辑
摘要: 本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件。 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解码后的音频保存为WAV文件 SoundTouch的使用指南 1.从视频文件中提取音频保存为WAV文件 阅读全文
posted @ 2016-10-27 10:49 Brook_icv 阅读(16091) 评论(0) 推荐(5) 编辑
摘要: 在上一篇文章 "RIFF和WAVE音频文件格式" 中对WAV的文件格式做了介绍,本文将使用标准C++库实现对数据为PCM格式的WAV文件的读写操作,只使用标准C++库函数,不依赖于其他的库。 WAV文件结构 WAV是符合RIFF标准的多媒体文件,其文件结构可以如下: | WAV 文件结构| |: | 阅读全文
posted @ 2016-10-17 17:17 Brook_icv 阅读(23097) 评论(5) 推荐(10) 编辑