图像算法/优化
文章平均质量分 91
ShadowN1ght
这个作者很懒,什么都没留下…
展开
-
C++实现一维离散傅里叶变换
本文介绍如何用C++实现一维离散傅里叶变换(Discrete Fourier Transform)。1. 一维傅里叶变换公式简介如果读者对傅里叶变换的认识处于一知半解的程度,那么建议先阅读相关文章,例如网络上广泛流传的《如果看了此文你还不懂傅里叶变换,那就过来掐死我吧》,以加深理解。一维连续傅里叶变换的公式表达如下:经过离散化后,上述公式变为:其中M为x的个原创 2017-08-22 22:46:46 · 9602 阅读 · 2 评论 -
C++实现一维快速傅里叶变换(FFT)
当一维信号长度达到几十万个信号时,当前主流4G主频CPU完成一次傅里叶变换需要约几十到几百秒的时间,这样的效率显然是让人无法接受的。为了解决傅里叶变换的计算效率问题,行业专家们提出了蝶形算法,极大地提升了傅里叶变换的运算效率。在蝶形算法中,较为流行的是基于时间抽取的基-2快速傅里叶变换算法(以下简称为基-2FFT算法)。原创 2017-08-28 07:51:01 · 28560 阅读 · 13 评论 -
深度学习训练图片收集器——C++截图程序的实现2(键鼠钩子篇)
在上一节《深度学习训练图片收集器——C++截图程序的实现1(需求分析篇)》中,我们分析了设计一个独立的截图程序的必要性。在本节中,我们将给出VisualStudio C++的键鼠钩子设置代码,以使程序能够监听用户按下Alt+A组合键的事件,以及鼠标拖拽截图矩形的事件。本程序的运行需要搭配DebugView工具以查看日志输出。DebugView是一个轻量级的日志查看工具,免安装,使用方便,可原创 2017-10-25 17:46:13 · 1476 阅读 · 0 评论 -
深度学习训练图片收集器——C++截图程序的实现3(主对话框响应键鼠消息进行截图)
在上一节《深度学习训练图片收集器——C++截图程序的实现2(键鼠钩子篇)》,我们实现了键鼠截图消息的传递。在本节中,我们将实现主程序的截图操作。现在的设想是,当主程序收到截图请求后,显示一个铺满整个屏幕的界面,把截图时的桌面图像粘贴到这个全屏界面上。当用户在全屏界面上拖拽鼠标时,通过调用OpenCV函数,显示一个红色边框的截图矩形。当用户在这个矩形上双击鼠标左键时,就进行保存截图的操作,并退出原创 2017-10-30 16:59:45 · 1660 阅读 · 0 评论 -
深度学习训练图片收集器——C++截图程序的实现1(需求分析篇)
当一个分类模型(例如车牌或人脸分类器)被设计出来后,设计者需要大量的数据对模型进行训练和验证,评估模型的好坏,不断地微调参数,以求达到最好的识别效果。在这一环节中,大量的训练数据是必不可少的。在学习过程中,我们可以通过百度和谷歌搜索到一些现成的数据集。但是,在实际项目中,很多情况下,难以直接获得现有的数据集,需要自己去独立获取和标注。另外,别人的同类数据集也不一定适合你的算法和模型。原创 2017-10-25 15:31:18 · 1467 阅读 · 0 评论 -
C++实现二维离散傅里叶变换
在上一篇文章《C++实现一维离散傅里叶变换》中,我们介绍了一维信号傅立叶变换的公式和C++实现,并阐述了频域幅值的意义。一维傅立叶变换只适用于一维信号,例如音频数据、心脑电图等。在图像处理中,图像信号具有高度和宽度两个属性,属于二维空间信号。将图像信号从空间域转换到频域时,需使用二维离散傅立叶变换。因此,需要将傅立叶变换从一维推广至二维。二维连续傅立叶变换公式如下:原创 2017-08-26 19:25:05 · 7369 阅读 · 9 评论 -
Speeded-Up Robust Feature---SURF算法原论文全文翻译(1)
(为确保整篇译文的阅读流畅性和连续性,本文主要采用意译,一些和SURF算法关系不大的句子和单词可能不会翻译出来。为帮助理解,可能会增加注释和C++实现代码。)(原论文下载链接:https://pan.baidu.com/s/1c2auCFm)原作者信息:摘要本文介绍了一种全新的尺度不变、旋转不变的特征点检测和描述算法,英文名为Speed-Up Robust Feat翻译 2017-12-08 11:53:28 · 4228 阅读 · 0 评论