首页 > 其他分享 >基于RAM的几何变换——平移

基于RAM的几何变换——平移

时间:2024-04-17 21:45:27浏览次数:27  
标签:平移 FPGA RAM 几何变换 COL ROW

基于RAM的几何变换——平移

一、平移的基本概念

  平移的概念很好理解,但是在具体操作中可能会涉及到两个问题:

  1. 平移量有正数也有负数,涉及到Verilog语法中的有符号数处理
  2. 平移会导致部分像素超出我们的显示范围,对这部分的像素应当做丢弃处理

二、MATLAB实现

  实现代码和实验结果如下所示:

%--------公式法平移-------------
clc;
clear all;
RGB = imread('house.png');

[ROW,COL,N] = size(RGB);

% 定义一个0~255区间的三通道的图像矩阵
pann = uint8(zeros(ROW,COL,N));

% 平移
for i = 1:ROW
    for j = 1:COL
        for k = 1:N
            if(((i+20)>COL) || ((j-50)<1))
                x = 1;
                y = 1;
            else
                x = i+20;
                y = j-50;
            end
            z=k;
            pann(x,y,z) = RGB(i,j,k);
        end
    end
end

subplot(1,2,1),imshow(RGB);      title('原图');
subplot(1,2,2),imshow(pann); title('平移');

9.1三、FPGA实现

  FPGA部分的实现代码仅仅修改了之前 isp_rota 中的部分,将按键控制的四个模式返回的坐标值进行了相应的平移算法移植。值得注意的是,对人眼识得的坐标原点和VGA的坐标原理有所区别,再有就是坐标平移之间的关系

  实验结果如下:

9.2

  实验结果符合预期。

参考资料:[1]咸鱼FPGA

标签:平移,FPGA,RAM,几何变换,COL,ROW
From: https://www.cnblogs.com/qier0220/p/18141835

相关文章

  • 基于RAM的几何变换——旋转
    基于RAM的几何变换——旋转一、旋转的基本概念  旋转和镜像不同的地方在于旋转可能会改变图像尺寸的大小,一辐长宽不一样的图片在旋转之后的图幅可能需要一定的裁剪,像width和height一致的图片则不需要考虑这些。实验原理则是很简单的全等三角形和坐标变换。二、MATLAB实现 ......
  • 【Nano Framework ESP32篇】WS2812 彩色灯带实验
    地球人皆知,许多物联网教程作者的心中都深爱着一灯大师,所以第一个例程总喜欢点灯,高级一点的会来个“一闪一闪亮晶晶”。老周今天要扯的也是和灯有关的,但不单纯地点个灯,那样实在不好玩,缺乏乐趣。老周打算舞个龙灯,哦不,是用LED彩色灯带给伙伴们整点炫酷乐子。说到这LED彩灯,咱们常见......
  • 在Go语言中往Kafka中发送数据,通常会使用Sarama库
    目录Sarama简介基本步骤示例代码Sarama简介Sarama是一个用Go语言编写的ApacheKafka客户端库,由Shopify公司最初开发,并在后来被IBM接管维护。Sarama库提供了一套完整的Kafka功能支持,包括生产者(Producer)、消费者(Consumer)以及消费者组(ConsumerGroup)等组件,允许开发者在Go应用程序......
  • Could not set parameters for mapping
    错误现象:Resolved[org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.type.TypeException:Couldnotsetparametersformapping:ParameterMapping{property='keywords',mode=IN,javaType=classjava.lang.Object,jdbcType=n......
  • FPGA入门笔记013——嵌入式块RAM使用之FIFO
    1、FIFO概述​ FIFO(FirstInFirstOut),即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据......
  • ASP.NET Core 8 EntityFrameworkCore 初体验
    介绍EntityFramework(EF)Core是轻量化、可扩展、开源和跨平台版的常用EntityFramework数据访问技术。EFCore可用作对象关系映射程序(O/RM),这可以实现以下两点:使.NET开发人员能够使用.NET对象处理数据库。无需再像通常那样编写大部分数据访问代码。先决条件V......
  • 3小时搞定DRF框架 | Django REST framework前后端分离框架实践
    DRF(全称DjangoRESTframework)是一个用于构建WebAPI的强力工具集,是一个基于Django的PythonWeb框架,它为开发人员提供了一套快速开发RESTfulAPI的工具,它能够自动化API可视化、文档化,实现接口的自动化测试以及自动化的API路由、序列化、视图、验证、分页、版本管理、认证等......
  • JSNice:Predicting Program Properties from “Big Code”
    发表:ACMSIGPLANNotices,2015,苏黎世联邦理工学院计算机科学系SoftwareReliabilityLab,AndreasKrause团队(https://scholar.google.com/citations?user=eDHv58AAAAAJ)(https://www.sri.inf.ethz.ch/research/plml)工具:http://jsnice.org内容概括  文章通过“大代码”......
  • 阿里云消息队列升级全新品牌 ApsaraMQ丨阿里云云原生 3 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • iframe跨域,获取iframe中元素
    1.需求让iframe嵌入页面,并且没有滚动条,也就是相当于两个页面拼接在一起跨域解决,通过框架配置代理proxy:{'/medical':{target:'https://example.com',changeOrigin:true,pathRewrite:{'^/medical':'',},},}......