23.1 傅里叶变换 目标 本小节我们将要学习: • 使用 OpenCV 对图像进行傅里叶变换 • 使用 Numpy 中 FFT(快速傅里叶变换)函数 • 傅里叶变换的一些用处 • 我们将要学习的函数有:cv2.dft(),cv2.idft() 等 原理 傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离 散傅里叶变换 (DFT) 分析图像的频域特性。实现 DFT 的一个快速算法被称为 快速傅里叶变换(FFT)。关于傅里叶变换的细节知识可以在任意一本图像处 理或信号处理的书中找到。请查看本小节中更多资源部分。 对于一个正弦信号:x (t) = A sin (2πft), 它的频率为 f,如果把这个信号 转到它的频域表示,我们会在频率 f 中看到一个峰值。如果我们的信号是由采 样产生的离散信号好组成,我们会得到类似的频谱图,只不过前面是连续的, 现在是离散。你可以把图像想象成沿着两个方向采集的信号。所以对图像同时 进行 X 方向和 Y 方向的傅里叶变换,我们就会得到这幅图像的频域表示(频谱 图)。 更直观一点,对于一个正弦信号,如果它的幅度变化非常快,我们可以说 他是高频信号,如果变化非常慢,我们称之为低频信号。你可以把这种想法应 用到图像中,图像那里的幅度变化非常大呢?边界点或者噪声。所以我们说边 界和噪声是图像中的高频分量(注意这里的高频是指变化非常快,而非出现的 次数多)。如果没有如此大的幅度变化我们称之为低频分量。 现在我们看看怎样进行傅里叶变换。 23.1.1 Numpy 中的傅里叶变换 首先我们看看如何使用 Numpy 进行傅里叶变换。Numpy 中的 FFT 包 可以帮助我们实现快速傅里叶变换。函数 np.fft.fft2() 可以对信号进行频率转 换,输出结果是一个复杂的数组。本函数的第一个参数是输入图像,要求是灰 度格式。第二个参数是可选的, 决定输出数组的大小。输出数组的大小和输入图 像大小一样。如果输出结果比输入图像大,输入图像就需要在进行 FFT 前补 0。如果输出结果比输入图像小的话,输入图像就会被切割。 146 www.linuxidc.com
2023-04-18 14:09:18 6.16MB OpenCV 官网教程 中文版
1
基于python opencv人脸识别的员工考勤系统 附完整代码 论文 毕业设计 选题“员工刷脸考勤”,要求采用 python 语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息到数据库中去。更细地,还涉及表的设计;另一个基本要求是通过摄像头识别员工面部信息来完成考勤,这个问题基本可以通过遍历数据库里的员工面部数据与当前摄像头里的员工面部数据的比对来实现,但有一个问题就是假如摄像头里有多张人脸改怎么处理。扩展要求是导出每日的考勤表,可以拆分为两个部分,一个是存储考勤信息,一个是展示考勤信息。 我们希望达到的目标是: 仿照通用型软件界面设计的原则,所有的操作都在菜单栏里实现,一部分区域用于展示摄像头实时读取并由程序加工后的视频流信息,另一部分区域做控制台输出,打印相关信息,比如提示员工面部信息添加成功、添加失败及其原因,提示员工打卡成功、打卡失败及其原因;添加面部信息时人是必须和程序进行交互的,比如输入一些相关的信息,这个时候程序是阻塞的;但是在打卡的时候,程序是不阻塞的,如果不点击关闭
2023-04-17 22:24:29 198.5MB opencv 人脸识别 考勤系统 毕业设计
透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。 如果你想对图像进行校准,那么透视变换是非常有效的变换手段。透视变换的定义为将图像投影到一个新的视平面,通常也被称之为投影映射。
2023-04-17 14:26:30 861KB 透视变换 Opencv Python
1
主要为大家详细介绍了OpenCV3.0+Python3.6实现特定颜色的物体追踪,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1
用OpenCV实现戴帽子,在64位电脑上可行。将可执行文件打包成exe,可直接运行。
2023-04-15 10:34:42 33.45MB OpenCV 戴帽子 有趣
1
针对网上很多类似的代码,其实都不能跟正常运行的,我把bug修复了
2023-04-14 20:24:53 772B opencv摄像头
1
这是一个用OPENCV编的支持向量机程序,很有用的,大家可以下来看看。
2023-04-14 13:51:07 138KB openCV的支持向量机程序
1
自述文件 - A-KAZE 功能 该库是 AKAZE 特征检测器和描述符算法的实现,其中删除了 OpenCV 依赖项。 这允许更灵活地使用 AKAZE 功能,而无需依赖 OpenCV。 此库的唯一依赖项是特征矩阵库。 我们努力使代码与原始实现保持相对一致,以便更容易跟踪和比较。 主要区别在于: 一切都在命名空间 libAKAZE 中 关键点和描述符是最小的自定义结构,而不是 OpenCV 的结构 图像保存在具有浮点像素的行主特征矩阵中 线程数可以在运行时设置 在我的实验中,这个实现比 OpenCV 实现慢了不到 1.5 倍。 这是因为 OpenCV 有许多用于图像处理的手写 SIMD 优化。 但是,此实现确实提供了与 OpenCV 相同的关键点和描述符(误差在 0.1% 以内)。 注意:如果您有关于如何提高性能(即图像卷积和图像半采样)的建议,请给我发电子邮件或提出请求! 我还要感
2023-04-14 10:46:50 3.62MB C++
1
主要介绍了opencv 实现特定颜色线条提取与定位操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
2023-04-14 10:30:31 139KB opencv 颜色线条 提取 定位
1
iterative_closest_point_2d 受启发 #usage像这样打电话, ret = icp ( d1 , d2 ) 。 d1, d2是2d点的numpy数组。 返回值ret是具有2行3列的转换矩阵。 icp估算旋转,移动,缩放(分别x和y)转换。
2023-04-14 10:02:22 28KB Python
1