fpga图片灰度处理
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图片灰度处理相关推荐
- C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。...
原文:C#图片灰度处理(位深度24→位深度8) #region 灰度处理/// <summary>/// 将源图像灰度化,并转化为8位灰度图像./// </summary>// ...
- background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化
介绍: 在情绪认知的心理学实验中,我们从不同的人脸图片库获取实验所需的实验材料.在正式使用之前往往需要对人脸进行预处理,以控制无关变量对实验结果的影响.常见的预处理有将图片修改为统一尺寸.灰度化.本文 ...
- 有趣的6种图片灰度转换算法
本文转载自blog 转载请注明出处 前言 黑白照片的时代虽然已经过去,但现在看到以前的照片,是不是有一种回到过去的感觉,很cool有木有~ 看完这篇文章,就可以把彩色照片变成各种各样的黑白的照片啦. ...
- java将图片灰度化
全栈工程师开发手册 (作者:栾鹏) java教程全解 java将图片灰度化 测试代码 public static void main(String[] args) {//文件与BufferedImag ...
- golang实现图片颜色反转、图片灰度、缩放、转为字符画
看到网上很多通过字符形成的画,觉得很好玩,于是网上搜索了下原来叫字符画. 见百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%94%BB/ ...
- Python 利用4行代码实现图片灰度化
背景 不论是在进行深度学习时的图片处理,还是在商业用途出版书刊,基本都会用到对图片进行灰度转换,也就是灰度化,本文章利用简单的4行代码来快速实现图片灰度化,仅供参考 效果 实现代码 from PIL ...
- opencvBGR转RGB,图片灰度、腐蚀、膨胀、降噪、模糊的代码例子
本文为个人学习过程中的记录,如有错误,欢迎指出. BGR转RGB opencv:BGR转RGB 代码如下. // An highlighted block Mat srcImg =imread(&qu ...
- 3 - 图片灰度化与转换为八位灰度图片
参考资料:彩色图像灰度化 图片灰度化与转换为八位灰度图片 1.灰度化公式 2.24 位真彩图灰度化 3.24 位真彩图转换成 8 位灰度图片 1.灰度化公式 彩色图像灰度化的算法公式一般有如下两种:明 ...
- python rgb2gray,skimage.color中的rgb2gray是如何实现彩色图片灰度化
最近在分析彩色图片灰度化的过程中使用到了一个函数skimage.color中的rgb2gray(),但是与自己所实现的灰度化公式在计算结果上出入较大,因此特意写这篇文章记录一下对比过程. 首先,看一下 ...
- opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录
对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...
最新文章
- 从零开始的ROS四轴机械臂控制-目录
- 蓝桥杯第九届决赛-交换次数-java
- Practical Vim 第一章 第二章
- python3作用域
- linux命令chown
- MapInfo导入.TAB和.mws的方法
- js window.onlload 自遐想
- vs文件上传失败--超过最大字符限制
- 2017.2.27自测
- 计算机组成原理学习 笔记一
- 嵌入式基础(1)---硬件知识,搞嵌入式开发必备
- MAC系统下 win7虚拟机上网应该怎么设置啊
- ASP.NET2.0 分页控件 PagerPro.dll (1.1.0 最新)
- 如何使用ccs软件创建工程
- JTAG接口定义与其他简介
- css背景颜色如何铺满屏幕
- Laravel 之搜索引擎elasticsearch扩展Scout
- 惠普触控板使用指南_惠普笔记本关闭触摸板【操作思路】
- 把北斗七星与北极星捡起来
- python:实现RGB和HSV相互转换算法(附完整源码)
热门文章
- FreeSwitch给会议室人员增加标识
- 统计表明,睡懒觉迟到早退的人特别有创造力,这是真的吗?
- linux下用top命令查看,cpu利用率超过100%时怎么回事
- python怎么做项目_通过例子说明如何维护好一个Python开源项目
- 公里与英里的换算c语言函数_这些天然气单位换算你知道吗?
- oracle查询多个加锁,解析oracle对select加锁的方法以及锁的查询 转
- java 构造函数嵌套_java – spring – 构造函数注入和覆盖嵌套bean的父定义
- pydobc连接sql server_python – PyOdbc无法连接到SQL Server实例
- 字符串json中函数的定义与解析
- 函数参数约定、传递顺序、传递方式