酷狗音乐是当今界面做的最好的软件,本人一直想模仿它,经过多年的研究,终于通过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 <