vga显示静态图品主要分为两个部分,一个是驱动vga,另一部分控制vga显示。

vga驱动部分之前写过,直接例化过来用即可。

另一个是vga显示,从网上找了一个200*200的lena图品,然后用BMP2Mif软件

将图片转换成mif文件,24*40000,24代表rgb三原色,4000代表像素,在200*200

的区域内,一共有40000个像素点,然后把mif文件存进rom里,vga显示出来即可。

/*-----------------------------------------------------------------------Date                :        2017-XX-XX
Description            :        Design for .-----------------------------------------------------------------------*/module vga_control
(//global clockinput                    clk,            //system clockinput                    rst_n,             //sync reset//vga interfaceinput            [10:0]    value_x,input            [10:0]    value_y,output            [23:0]    rgb,//rom interfaceoutput    reg        [15:0]    rom_addr,        //
    input            [23:0]    rom_q
); //--------------------------------
//Funtion :    display_区域           wire        display_addr;
assign        display_addr    =    ((value_x >= 8'd100 && value_x < 9'd300) && (value_y >= 8'd100 && value_y < 9'd300)) ? 1'b1 : 1'b0;//--------------------------------
//Funtion :    rgbassign        rgb                =    (display_addr == 1'b1) ? rom_q : 1'd0; //--------------------------------
//Funtion :    rom_addrwire        [10:0]        display_x;
wire        [10:0]        display_y;assign            display_x        =    value_x - 8'd100;
assign            display_y        =    value_y    - 8'd100;always @(posedge clk or negedge rst_n)
beginif(!rst_n)rom_addr <= 1'd0;else if(display_addr)rom_addr <= display_x  +  display_y*200;elserom_addr <= 1'd0;
endendmodule

将图品进行灰度处理,把图片进行灰度化我搜了一下,一是可以加快运算速度,第二点色彩对于计算本身并没有作用,所以把它舍弃。

彩色转灰度公式 : gray = RX0.299 + GX0.587 + BX0.114;

fpga里面的寄存器都是整数,所以需要对数据进行放大,可能思维固化了吧,第一反应是这样的

因为都是三位小数,我会乘上1000然后除1000,但是除法速度明显不如移位,其实可以这样

把每位都乘上2^16,然后右移16位即可

//--------------------------------
//Funtion :    rgb//assign        rgb                =    (display_addr == 1'b1) ? rom_q : 1'd0;
assign        rgb                =    (display_addr == 1'b1) ? {3{gray}} : 1'd0; //--------------------------------
//Funtion :    转灰度处理
wire        [7:0]        gray;assign        gray = (rom_q[23:16]*19595 + rom_q[15:8]*38469 + rom_q[7:0]*7472) >> 16;

这样一看,灰度化其实也挺简单的,没有那么神秘

转载于:https://www.cnblogs.com/bixiaopengblog/p/7462961.html

fpga图片灰度处理相关推荐

  1. C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。...

    原文:C#图片灰度处理(位深度24→位深度8) #region 灰度处理/// <summary>/// 将源图像灰度化,并转化为8位灰度图像./// </summary>// ...

  2. background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化

    介绍: 在情绪认知的心理学实验中,我们从不同的人脸图片库获取实验所需的实验材料.在正式使用之前往往需要对人脸进行预处理,以控制无关变量对实验结果的影响.常见的预处理有将图片修改为统一尺寸.灰度化.本文 ...

  3. 有趣的6种图片灰度转换算法

    本文转载自blog 转载请注明出处 前言 黑白照片的时代虽然已经过去,但现在看到以前的照片,是不是有一种回到过去的感觉,很cool有木有~ 看完这篇文章,就可以把彩色照片变成各种各样的黑白的照片啦. ...

  4. java将图片灰度化

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java将图片灰度化 测试代码 public static void main(String[] args) {//文件与BufferedImag ...

  5. golang实现图片颜色反转、图片灰度、缩放、转为字符画

    看到网上很多通过字符形成的画,觉得很好玩,于是网上搜索了下原来叫字符画. 见百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%94%BB/ ...

  6. Python 利用4行代码实现图片灰度化

    背景 不论是在进行深度学习时的图片处理,还是在商业用途出版书刊,基本都会用到对图片进行灰度转换,也就是灰度化,本文章利用简单的4行代码来快速实现图片灰度化,仅供参考 效果 实现代码 from PIL ...

  7. opencvBGR转RGB,图片灰度、腐蚀、膨胀、降噪、模糊的代码例子

    本文为个人学习过程中的记录,如有错误,欢迎指出. BGR转RGB opencv:BGR转RGB 代码如下. // An highlighted block Mat srcImg =imread(&qu ...

  8. 3 - 图片灰度化与转换为八位灰度图片

    参考资料:彩色图像灰度化 图片灰度化与转换为八位灰度图片 1.灰度化公式 2.24 位真彩图灰度化 3.24 位真彩图转换成 8 位灰度图片 1.灰度化公式 彩色图像灰度化的算法公式一般有如下两种:明 ...

  9. python rgb2gray,skimage.color中的rgb2gray是如何实现彩色图片灰度化

    最近在分析彩色图片灰度化的过程中使用到了一个函数skimage.color中的rgb2gray(),但是与自己所实现的灰度化公式在计算结果上出入较大,因此特意写这篇文章记录一下对比过程. 首先,看一下 ...

  10. opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录

    对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...

最新文章

  1. 从零开始的ROS四轴机械臂控制-目录
  2. 蓝桥杯第九届决赛-交换次数-java
  3. Practical Vim 第一章 第二章
  4. python3作用域
  5. linux命令chown
  6. MapInfo导入.TAB和.mws的方法
  7. js window.onlload 自遐想
  8. vs文件上传失败--超过最大字符限制
  9. 2017.2.27自测
  10. 计算机组成原理学习 笔记一
  11. 嵌入式基础(1)---硬件知识,搞嵌入式开发必备
  12. MAC系统下 win7虚拟机上网应该怎么设置啊
  13. ASP.NET2.0 分页控件 PagerPro.dll (1.1.0 最新)
  14. 如何使用ccs软件创建工程
  15. JTAG接口定义与其他简介
  16. css背景颜色如何铺满屏幕
  17. Laravel 之搜索引擎elasticsearch扩展Scout
  18. 惠普触控板使用指南_惠普笔记本关闭触摸板【操作思路】
  19. 把北斗七星与北极星捡起来
  20. python:实现RGB和HSV相互转换算法(附完整源码)

热门文章

  1. FreeSwitch给会议室人员增加标识
  2. 统计表明,睡懒觉迟到早退的人特别有创造力,这是真的吗?
  3. linux下用top命令查看,cpu利用率超过100%时怎么回事
  4. python怎么做项目_通过例子说明如何维护好一个Python开源项目
  5. 公里与英里的换算c语言函数_这些天然气单位换算你知道吗?
  6. oracle查询多个加锁,解析oracle对select加锁的方法以及锁的查询 转
  7. java 构造函数嵌套_java – spring – 构造函数注入和覆盖嵌套bean的父定义
  8. pydobc连接sql server_python – PyOdbc无法连接到SQL Server实例
  9. 字符串json中函数的定义与解析
  10. 函数参数约定、传递顺序、传递方式