五、VGA 叠加图像原理和实现(十字光标)

  1. 前言:该案例在VGA项目:联合精简帧+双fifo+sobel算法 实现VGA显示项目的基础上进行改动。

  2. 要求:通过串口助手把 198x198 的十字光标图像二进制数据传递给 FPGA 板卡,FPGA 板
    卡接收到后存储到 Ram 中用于 VGA 叠加显示。

  3. 预期效果展示
    原光标图:
    在这里插入图片描述

    叠加显示效果:
    在这里插入图片描述

  4. 分析: 光标文件是白色为背景,那么如果图像像素等于255就可以判断是白色背景,根据此特性,把 255 的像素用 VGA 的 RGB 背景替换,这样就把光标叠加到显示区域中了。

  5. 关键代码

// rgb 光标抠图效果显示
always @(posedge clk_25) begin if(rst=='b1) beginrgb<= 'd0;end//198x198像素的白框else if (cnt_h>=144+x && cnt_h<=341+x && cnt_v>=35+y && cnt_v<=232+y) beginrgb<=doutb;end//判断若是光标的白色背景,则显示成rgb的背景色,否则显示光标图else if (cnt_h>=144 && cnt_h<=783) beginif (cnt_v>=35 && cnt_v<=194 && doutb<=255) beginrgb<=RED;endelse if (cnt_v>=195 && cnt_v<=354 && doutb<=255) beginrgb<=GREEN;endelse if (cnt_v>=355 && cnt_v<=514 && doutb<=255) beginrgb<=BLUE;endend elsergb<=doutb;end//rgb彩条背景色生成
always @(posedge clk_25) begin if(rst==1'b1) beginrgb <= 'd0;end else if (cnt_h>=144 && cnt_h<=783) beginif (cnt_v>=35 && cnt_v<=194) beginrgb<=RED;endelse if (cnt_v>=195 && cnt_v<=354 ) beginrgb<=GREEN;endelse if (cnt_v>=355 && cnt_v<=514 ) beginrgb<=BLUE;endend elsergb<='d0;end

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

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

相关文章

020、Python+fastapi,第一个Python项目走向第20步:ubuntu 24.04 docker 安装mysql8集群+redis集群(一)

系列文章 pythonvue3fastapiai 学习_浪淘沙jkp的博客-CSDN博客https://blog.csdn.net/jiangkp/category_12623996.html 前言 docker安装起来比较方便&#xff0c;不影响系统整体&#xff0c;和前面虚拟环境有异曲同工之妙&#xff0c;今天把老笔记本T400拿出来装了个ubuntu24…

小程序激励广告视频多次回调问题

1.问题 2. 激励视频使用及解决方案 官方文档 let videoAd null; // 在页面中定义激励视频广告 Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {let that this;// 创建激励视频广告实例if (wx.createRewardedVideoAd) {videoAd w…

知识库工具:付费的HelpLook AI知识库比免费的牵牛易帮好在哪里

在知识管理的领域中&#xff0c;选择合适的知识库工具对于企业来说很重要。市面上有很多知识库产品&#xff0c;有付费的和免费的&#xff0c;但是还是有很多企业会选择使用付费的&#xff0c;而不是免费的。这是为什么呢&#xff1f;这就是今天要探讨的问题&#xff0c;下面就…

Matlab : unique函数的用法

unique是MATLAB中一个非常实用的函数&#xff0c;用于找出数组中的唯一值。它有几种不同的用法&#xff0c;可以根据需要选择合适的参数来控制输出的行为。以下是unique函数的基本用法和一些常见参数的介绍&#xff1a; 基本语法&#xff1a; C unique(A) [C,IA,IC] unique…

Android虚拟机机制

目录 一、Android 虚拟机 dalvik/art&#xff08;6版本后&#xff09;二、Android dex、odex、oat、vdex、art区别 一、Android 虚拟机 dalvik/art&#xff08;6版本后&#xff09; 每个应用都在其自己的进程中运行&#xff0c;都有自己的虚拟机实例。ART通过执行DEX文件可在设…

Nacos的开源背景和它的主要贡献者是谁?

在微服务架构的浪潮中&#xff0c;服务注册与发现、动态配置管理等功能日益成为支撑微服务稳定运行的核心组件。而Nacos&#xff0c;作为阿里巴巴开源的一个明星项目&#xff0c;自诞生之初就凭借其强大的功能和灵活性&#xff0c;迅速成为云原生领域的佼佼者。 一、Nacos的开…

什么是B2B SaaS公司?

前言 在当今数字化时代&#xff0c;B2B SaaS公司正在以惊人的速度崛起&#xff0c;成为企业界的一股重要力量。但是&#xff0c;对于许多人来说&#xff0c;B2B SaaS究竟是什么&#xff0c;以及它如何影响商业生态&#xff0c;可能还是一片未知。本文将简要介绍B2B SaaS公司的…

Python+Selenium 实现自动化测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 安装selenium 打开命令控制符输入&#xff1a;pip install -U …

网络安全----小程序渗透测试反编译审计漏洞

一、什么是反编译审计漏洞 微信小程序反编译渗透测试是一种针对微信小程序的安全测试方法&#xff0c;是在通过对小程序源代码的反编译和分析&#xff0c;发现潜在的安全漏洞&#xff0c;并对其进行渗透测试以验证其安全性的一种方法。 二、测试流程及其步骤 反编译小程序&a…

String 的replace方法的使用:

String s”str123str”; String hellos.replace(“str”,”hello”); System.out.println(“hello:hello);//输出结果&#xff1a;hello123hello String s1”str123st.r”; String hello1s1.replace(“\\.”,””);//\\进行转义 System.out.println(“hello1:hello1);//输出…

FastAPI - 应用Jinja2模板的简单案例

在 FastAPI 中使用 Jinja2 模板&#xff0c;需要安装 aiofiles 和 jinja2 Python 包。 pip install aiofiles jinja2以下是一个使用 FastAPI 和 Jinja2 模板的基本示例&#xff1a; 首先&#xff0c;创建一个 Jinja2 模板文件 templates/item.html&#xff1a; <!DOCTYPE…

深入探索Android Retrofit:概述、工作原理、实践应用与评估

摘要 随着移动互联网的飞速发展&#xff0c;高效且可靠的网络通信成为现代Android应用开发的关键要素。Retrofit作为一款广受欢迎的REST客户端库&#xff0c;以其高度灵活性、类型安全特性和简洁的API设计&#xff0c;在Android开发社区内赢得了极高的声誉。本文旨在全面剖析Re…

C#知识|如何在WinForm窗体中实现分割线绘制?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在上位机UI设计中经常会用到分割线&#xff0c;用来分割界面区域。 像在KingSCADA、杰控、昆仑通态、WinCC、组态王、力控、易控等组态软件中非常简单&#xff0c;有现成的划线操作&#xff0c;选中相关工具直接绘制即…

颠覆传统?「一束光子,两种频率」的量子纠缠!

在最新的研究中&#xff0c;科学家们开发了一种革命性的量子纠缠方式——“频域光子数路纠缠”&#xff08;frequency-domain photon number-path entanglement&#xff09;。这一量子物理学的重大进展涉及到一个创新性的工具&#xff1a;频率分束器&#xff08;frequency beam…

Rust : 声明宏在不同K线bar类型中的应用

Rust的宏功能博大精深。在K线bar中&#xff0c;往往有很多不同分时k线图&#xff0c;比如1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;。。。。60&#xff0c;120&#xff0c;250&#xff0c;300…。。不同分钟类型。 如果不用宏&#xff0c;那么手写会比较麻烦。下面…

jmeter后置处理器提取到的参数因为换行符导致json解析错误

现象&#xff1a; {"message":"JSON parse error: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Ill…

开源之夏 2024 学生报名通道现已正式开启!奖金都是12000元,冲啊!!!

Apache SeaTunnel作为数据集成平台的先行者&#xff0c;数以千计的开发者活跃在这个开源社区&#xff0c;我们深知开源社区就像是“众人拾柴火焰高”&#xff0c;希望有更多的青年力量能参与到社区的建设中来&#xff01; 在前段时间&#xff0c;我们不仅成功入选中科院软件所主…

[C++]VS2022配置cplex12.8过程中出现ext未声明标识符语法错误:标识符“ImplClass“

这个时候&#xff0c;主要的是看报错&#xff0c;根据报错&#xff0c;去网上寻找解决办法。因为这个时候&#xff0c;代码可能并没有任何错误&#xff0c;只不过你是VS2022&#xff0c;老师是VS2017或者其他版本。不同的版本之间代码运行问题&#xff0c;如果你换成cplex12.10…

【前端】输入时字符跳动动画实现

输入时字符跳动动画实现 在前端开发中&#xff0c;为了提升用户体验&#xff0c;我们经常需要为用户的交互行为提供即时的反馈。这不仅让用户知道他们的操作有了响应&#xff0c;还可以让整个界面看起来更加生动、有趣。本文将通过一个简单的例子讲解如何实现在用户输入字符时…

IoTDB 入门教程 基础篇④——数据库用户管理和用户权限管理

文章目录 一、前文二、修改ROOT密码三、用户登录四、查看用户列表五、创建用户六、删除用户七、修改用户八、查看指定用户的权限范围九、添加指定用户的权限范围十、删除指定用户的权限范围十一、参考 一、前文 IoTDB入门教程——导读 本文主要讲述数据库用户管理和用户权限管理…