PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换

为什么要对图像进行中心差分变换?

对图像进行中心差分变换的主要目的是计算图像中每个像素点的梯度。梯度在图像处理中是一个非常重要的概念,它可以用来描述图像中灰度变化的快慢和方向,常用于边缘检测、特征提取和图像增强等任务中。

具体来说,中心差分变换有以下几个作用:

  1. 边缘检测:梯度可以帮助我们找到图像中的边缘,因为在边缘处像素的灰度值通常会发生较大的变化。通过计算梯度,我们可以找到这些变化较大的区域,从而实现边缘检测。

  2. 特征提取:梯度可以用来提取图像中的一些重要特征,例如角点和边缘点。这些特征在图像匹配和目标识别等任务中非常有用。

  3. 图像增强:梯度可以用来增强图像的对比度和细节。通过计算梯度,我们可以调整图像的灰度级,使得图像中的细节更加清晰。

  4. 图像去噪:梯度可以帮助我们去除图像中的噪声。由于噪声通常会导致像素值的随机变化,因此在梯度计算中可以将这些随机变化过滤掉,从而实现去噪效果。

综上所述,通过对图像进行中心差分变换,我们可以获得图像中每个像素点的梯度信息,从而实现边缘检测、特征提取、图像增强和图像去噪等各种图像处理任务。

图像中心差分变换的算法

中心差分图像的计算公式是通过当前像素的后一像素和前一像素的差值除以2来得到的。具体公式如下所示:

 I(x) = (I(x+1) - I(x-1)) / 2 ​

其中,I(x)  表示图像的像素值,x 表示当前像素的位置。I(x+1)表示后一像素值,I(x-1))表示前一像素值,这个公式描述了图像中每个像素的变化情况,可以用来分析图像的梯度或边缘信息。

中心差分图像的应用非常广泛,包括视频压缩、生物医学诊断、天文学、遥感、人脸识别等领域。

python实现图像的领域中心差分算法

PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换-Anlogic-安路论坛-FPGA CPLD-ChipDebug

这段代码使用了 OpenCV 库和 NumPy 库来实现图像的中心差分变换。首先,它定义了一个 central_difference 函数,该函数接受一个灰度图像作为输入,并返回中心差分后的图像。然后,它读取了一张彩色图像,将其转换为灰度图像,并应用了中心差分算法。最后,它将原始图像、灰度图像和中心差分后的图像水平叠加,并添加了标题,最终显示出来。

matlab实现图像的领域中心差分算法

PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换-Anlogic-安路论坛-FPGA CPLD-ChipDebug

这个 MATLAB 代码实现了对彩色图像应用中心差分算法,并将结果与原始彩色图像和灰度图像进行水平叠加,显示合并后的图像。下面是每个函数的功能说明:

  • img_central_diff: 主函数,用于读取彩色图像,将其转换为灰度图像,并应用中心差分算法。然后将原始彩色图像、灰度图像和差分图像水平叠加,并添加标题,最后显示合并后的图像。

  • central_difference: 辅助函数,接受一个灰度图像作为输入,并应用中心差分算法来计算每个像素的差分值。然后将结果取绝对值并转换为 uint8 类型,最后返回差分图像。

上面的代码可以看到合并后的灰度图太黑了,几乎看不到,要解决图像太黑的问题,可以考虑调整灰度图像和差分图像的亮度范围,使它们更接近彩色图像的亮度范围。这可以通过线性拉伸或直方图均衡化来实现。为了教程和简洁性在FPGA中我们不组合这些步骤。

下面是对代码的修改,其中使用了直方图均衡化来调整灰度图像和差分图像的亮度范围:

PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换-Anlogic-安路论坛-FPGA CPLD-ChipDebug

调整后的图像如下

FPGA工程解析

demo18相比,只是多了一个img_central_diff的模块,也就是下面这一段代码,在从SDRAM读出来之后,经它处理后再输出hdmi_tx模块。

代码解析

核心算法就这一段,这一段代码中以红色分量为例i_r_d是前一周期的像素值,i_r为当前像素值,二者相减,然后右移一位即为除以2。

PotatoPie 4.0 实验教程(24) —— FPGA实现摄像头图像中心差分变换-Anlogic-安路论坛-FPGA CPLD-ChipDebug

其它请参考代码中的详细注释。

管脚约束

与PotatoPie 4.0 实验教程(18) —— FPGA实现OV5640摄像头采集以SDRAM作为显存进行HDMI输出显示相同,不作赘述。

时序约束

与PotatoPie 4.0 实验教程(18) —— FPGA实现OV5640摄像头采集以SDRAM作为显存进行HDMI输出显示相同,不作赘述。

实验结果

像机噪点有点多呃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/315464.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub】2FA认证(双重身份验证)

GitHub 2FA认证(双重身份验证) 写在最前面一、使用 TOTP 应用程序配置双2FA(双因素身份验证)1. 介绍2. github3. 认证 官网介绍小结 & 补充 :权限不足or验证码错误问题 🌈你好呀!我是 是Yu欸…

CCS项目持续集成

​ 因工作需要,用户提出希望可以做ccs项目的持续集成,及代码提交后能够自动编译并提交到svn。调研过jenkins之后发现重新手写更有性价比,所以肝了几晚终于搞出来了,现在分享出来。 ​ 先交代背景: 1. 代码分两部分&am…

C++设计模式:适配器模式(十四)

1、定义与动机 定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。 动机: 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境…

【前端缓存】localStorage是同步还是异步的?为什么?

写在开头 点赞 收藏 学会 首先明确一点,localStorage是同步的 一、首先为什么会有这样的问题 localStorage 是 Web Storage API 的一部分,它提供了一种存储键值对的机制。localStorage 的数据是持久存储在用户的硬盘上的,而不是内存。这意…

Professional CUDA C Programming

2023/4/28 1.使用nvfrof时,报错 解决方法: 将路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\CUPTI\lib64 下的文件cupti64_2020.2.0.dll复制到路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin下即可。 2…

岚图汽车与东软睿驰签署战略合作协议

4月26日,东软睿驰与岚图汽车正式签署战略合作协议,双方将结合在各自领域拥有的产业资源、技术研发和资本运作等优势,聚焦智能化产品和应用,建立长期共赢的战略合作伙伴关系,通过不断探索未来新技术、新产业、新业态和新模式,围绕用户需求共同打造极致的智能出行体验。 图为岚图…

Java设计模式 _创建型模式_工厂模式(普通工厂和抽象工厂)

一、工厂模式 属于Java设计模式创建者模式的一种。在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 二、代码示例 场景:花店有不同的花,通过工厂模式来获取花。 1、普通工厂模式 逻辑步骤&#…

华为matebook 14安装ubuntu双系统

一、准备u盘 首先格式化u盘(选择FAT32) 二、确认电脑类型 键盘按下win+r(win:开始键/也就是Windows的标志那个键),在输入框内输入msinfo32后,回车确认 确定自己电脑 硬盘 的类型: 在显示屏下方的搜索框内搜索“计算机管理” 点击进入后,再点击左边列表内的“磁…

java多功能手机

随着科技的发展,手机的使用已经普及到每个家庭甚至个人,手机的属性越来越强大,功能也越来越多,因此人们在生活中越来越依赖于手机。 任务要求,使用所学知识编写一个手机属性及功能分析程序设计,测试各个手机…

时间序列生成数据,TransformerGAN

简介:这个代码可以用于时间序列修复和生成。使用transformer提取单变量或者多变时间窗口的趋势分布情况。然后使用GAN生成分布类似的时间序列。 此外,还实现了基于prompt的数据生成,比如指定生成某个月份的数据、某半个月的数据、某一个星期的…

WEB逆向—X-Bogus逆向分析(纯算+补环境)

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 前言 此平台 本人 仅限…

深度学习之视觉特征提取器——VGG系列

VGG 提出论文:1409.1556.pdf (arxiv.org) 引入 距离VGG网络的提出已经约十年,很难想象在深度学习高速发展的今天,一个模型能够历经十年而不衰。虽然如今已经有VGG的大量替代品,但是笔者研究的一些领域仍然有大量工作选择使用VG…

Web前端安全问题分类综合以及XSS、CSRF、SQL注入、DoS/DDoS攻击、会话劫持、点击劫持等详解,增强生产安全意识

前端安全问题是指发生在浏览器、单页面应用、Web页面等前端环境中的各类安全隐患。Web前端作为与用户直接交互的界面,其安全性问题直接关系到用户体验和数据安全。近年来,随着前端技术的快速发展,Web前端安全问题也日益凸显。因此&#xff0c…

SQLite导出数据库至sql文件

SQLite是一款实现了自包含、无服务器、零配置、事务性SQL数据库引擎的软件库。SQLite是世界上部署最广泛的SQL数据库引擎。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。 SQLite 源代码不受版权限制。…

Visual Studio Code基础:打开一个编辑器(文件)时,覆盖了原编辑器

相关阅读 VS codehttps://blog.csdn.net/weixin_45791458/category_12658212.html?spm1001.2014.3001.5482 在使用vscode时,偶尔会出现这样的问题:打开了某个编辑器(文件,下面统称文件)后,再打开其他文件…

Python AI库 Pandas的常见操作的扩展知识

Python AI库 Pandas的常见操作的扩展知识 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 熟悉表格文件的基本操作 具备自主扩展学习能力 前文中对Pandas的数据结构以及基础操作做了介绍,本文中会在前文的基础上,对常见的操作进…

MacOS通过命令行开启关闭向日葵远程控制的后台服务

categories: [Tips] tags: MacOS Tips 写在前面 经常有小伙伴问我电脑相关的问题, 而解决问题的一个重要途径就是远程了. 关于免费的远程工具我试过向日葵和 todesk, 并且主要使用向日葵, 虽然 MacOS 下要设置很多权限, 但是也不影响其丝滑的控制. 虽然用着舒服, 但是向日葵…

arm架构,django4.2.7适配达梦8数据库

【Python相关包版本信息】 Django 4.2.7 django-dmPython 3.1.7 dmPython 2.5.5 【达梦数据库版本】 DM Database Server 64 V8 DB Version: 0x7000c 适配过程中发现的问题如下: 错误一:d…

[图解]软件开发中的糊涂用语-04-为什么要追究糊涂用语

0 00:00:00,030 --> 00:00:05,620 今天呢,我们来说一个为什么要追究糊涂用语的问题 1 00:00:06,310 --> 00:00:06,548 2 00:00:06,548 --> 00:00:11,077 大家知道我们前些天都发了好几个视频 3 00:00:11,077 --> 00:00:13,461 追究这个糊涂用语 4 00…

视频批量下载工具

1、功能演示 该工具实现了某个人主页视频批量下载,最多支持一次下载50个视频,这50个选取的是最新发布的50个视频,视频为高清的1080p,并直接将视频保存到本地。 2、软件使用介绍 2.1 解压 拿到工具软件后,首先是对软件…