基于OpenCV的音频频谱优化(仿酷狗频谱)
酷狗音乐是当今界面做的最好的软件,本人一直想模仿它,经过多年的研究,终于通过QT+FFmpg+OpenCV来解决了全部功能。
QT用来设计界面
FFmpeg用来解码音频和频谱
OpenCV用来对频谱图像优化
在这些功能中,频谱是比较难实现的,我的方案是选通过FFmpeg获取音频采样率,再分析绘制成QImage图像,再用OpenCV优化。
下图是绘制的原图:
图像经过高斯模糊后的效果,发现边缘变黑了.不美观,关键在下一步!
经过本人对PS的了解,用了一个巧妙的方法:反相,黑边缘变成白的,好看多了!和酷狗也差不了多少了!
反相的代码如下(QT):
invert(Mat& mat)
{int alphaWidth=mat.cols/10;//计算淡入淡出的宽度,图像的1/10.int w= mat.rows;int h= mat.cols;for (int i = 0; i < w; ++i) {for (int j = 0; j < h; ++j) {Vec4b& rgba = mat.at<Vec4b>(i, j);if(rgba[3]>0){//下面是对RGB进行反相,255-rgb值的绝对值rgba[0]=qAbs(255-rgba[0]);//rrgba[1]=qAbs(255-rgba[1]);//grgba[2]=qAbs(255-rgba[2]);//b//下面是图像左边淡入处理rgba[3]为图像的Alph值,即透明度。if(j<alphaWidth){rgba[3]=rgba[3]*((double)j/(double)alphaWidth);}//下面是图像右边淡出处理else if(j>h-alphaWidth){rgba[3]=rgba[3]*((double)(h-j)/(double)alphaWidth);}}}}
}
主程序的一些代码:
Mat src_img = QImageToMat(m_img);//QImage转MatMat des_img;GaussianBlur(src_img,des_img,Size(0,0),4);//调用OpenCV的高峰期模糊函数des_qimg=MatToQImage(invert(des_img));//反相后转为QImage格式update();//更新背景频谱
下面是播放器的一些图片:
软件效果观看视频:https://www.bilibili.com/video/av62887688/
由于程序有一些功能还在完善中,不久后将公布相关教程和源码!大家期待,也可一起探讨研究!
基于OpenCV的音频频谱优化(仿酷狗频谱)相关推荐
- 【游戏开发创新】手把手教你使用Unity制作一个高仿酷狗音乐播放器,滨崎步,旋律起,爷青回(声音可视化 | 频谱 | Audio)
文章目录 一.前言 二.获取UI素材 三.使用UGUI制作界面 1.界面布局 2.账号圆形头像 3.搜索框 4.调节UI层 5.黑色按钮悬浮高亮效果 6.纯文字按钮 7.滚动列表自适应 8.歌名与视频 ...
- 基于Qt的仿酷狗音乐播放器设计(二)
简述 在上一文"基于Qt的仿酷狗音乐播放器设计(一)"中,博主给出了仿酷狗界面的部分内容,在本文中将继续分析酷狗界面,并作出相应的分析. 下面我们来看一下酷狗界面中的左侧滑动页控制 ...
- java仿酷狗音乐源码_【附项目源码】仿酷狗音乐客户端,浅淡动感歌词补充
原标题:[附项目源码]仿酷狗音乐客户端,浅淡动感歌词补充 1.前言 之前写了几篇关于动感歌词的简单介绍,相信大家还有印象,这里就不多说了,这篇要说的是,关于翻译歌词和音译歌词,以及我在解析和显示这两种 ...
- android 高仿酷狗源码,项目源码--Android类似酷狗音乐播放器
知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1.音乐文件的扫描与管理 ...
- 仿酷狗音乐播放器已开源!
转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/41037875 距离我发布测试版的Redrain音乐盒(仿酷狗播放器),现在正 ...
- js、jQuery 仿酷狗音乐
很久之前做的仿酷狗音乐播放器,有需要的同学可以借鉴下,希望对您有些许帮助,存在一些bug,完成后没做太多修改,毕竟是练练手,工作之余做的,您可以将存在的需要解决的问题写在评论里,我会及时回复,望见谅. ...
- android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...
- 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)...
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...
最新文章
- docker image存储路径_使用fluentd作为docker日志驱动收集日志
- python连接oracle
- 如何将PDF转换为DOCX?
- 增加批量修改成本价格,配合后台管理增加成本价和毛利润统计
- 小米笔记本重装系统BOOT启动菜单识别不了硬盘无法启动进入系统
- 微信网页授权关于state
- 特征值和特征向量的作用
- 微信小程序:去水印工具微信小程序源码
- SQL Server 2005全文检索技术在网站上的应用实录
- 10个比Visio更好的流程图制作软件
- python计算机视觉编程——基本的图像操作和处理
- matlab作时间轴有关的图
- SVLAN,CVLAN,PVLAN是属于SVLAN(Stack VLAN)的观念
- 巨龙之巢服务器为响应,LOL巨龙之巢新网通大区9月4日开放 龙女皇子潘森免费用...
- python证书微软认证费用_微软认证有哪些?费用多少?
- 读史记——刘敬叔孙通列传第三十九(1)
- Linux中DNS的分离解析和自动分配
- 可以说是校招面试难度天花板了吧~
- C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值
- 我是谁?|一名双非、大龄青年的转行之路