使用MATLAB转换图片为数据进行vga显示
如题,本文参考邓堪文老师的博文教程。
之前这个问题纠结了很久,就是在使用MATLAB转换图片的时候,手里有的代码是将一副图片转为八位332显示的格式。
类似这种,但是,要将显示的图片是全蓝色的。
因为我的显示是565,这时候显示的蓝色通道没有数据,这时候就是出现显示的图片为蓝色的情况。这里提供两个MATLAB代码,下面在基于FPGA的图片发送会有提供两种对应的解决方式。(这里简单提下,分别是两种拼接方式_因为串口发送的数据是8bit的,所以进行拼接,从而改变显示)
代码一:对于图片转化成8位数据的txt格式。两位四进制形式,显示332的VGA,也可以用它显示(565,期待更新)
%将数据转成8bit_txt文件
clc;
clear all;
RGB_data = imread('1.bmp');
R_data = RGB_data(:,:,1);
G_data = RGB_data(:,:,2);
B_data = RGB_data(:,:,3);
[ROW, COL] = size(R_data);
outdata = zeros(1,ROW*COL);
for r = 1:100for c = 1:100outdata((r-1)*COL+c) = bitand(R_data(r,c),224) + bitshift(bitand(G_data(r,c),224),-3) + bitshift(bitand(B_data(r,c),192),-5);end
endfid = fopen('1.txt', 'w+');
for i=1 : ROW*COLfprintf(fid,'%02x',outdata(i));
end
fclose(fid);
代码二:对于图片转化成十六位数据的txt格式。
clc;
clear all;
RGB_data = imread('1.bmp');
R_data = im2uint16(RGB_data(:,:,1));
G_data = im2uint16(RGB_data(:,:,2));
B_data = im2uint16(RGB_data(:,:,3));
[ROW, COL] = size(R_data);
outdata = zeros(1,ROW*COL);
for r = 1:100for c = 1:100outdata((r-1)*COL+c) = bitand(R_data(r,c),63488) + bitshift(bitand(G_data(r,c),64512),-5) + bitshift(bitand(B_data(r,c),63488),-11);end
endfid = fopen('1.txt', 'w+');
for i=1 : ROW*COLfprintf(fid,'%04x\n',outdata(i));
end
fclose(fid);
这样显示的就是十六位数据了
和转换软件产生的像素点一样。但是在实际应用中不建议加(也不能加换行符,会将这个字符发送出去,进而影响显示的效果)
最后,还是很感谢邓堪文老师。希望可以走的更远(代码原理这里简单说一下吧)
代码原理:
取rgb三个灰度,遍历每一个元素,形成二进制转换,最后移位拼接,最后十九进制输出。需要有一定的基础,这里只是简单说说,代码可以直接使用。
使用MATLAB转换图片为数据进行vga显示相关推荐
- las文件matlab,基于Matlab的LAS格式数据解析与显示.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > matlab 基于Matlab的LAS格式数据解析与显示.pdf ...
- matlab 转换图片格式,Matlab实现图片格式转换 pgm转jpg等
在Matlab下,转换图片格式相对比较容易,本文以 PGM 转 JPG 为例,贴出示例程序: % 将pgm图片批量转换为jpg图片 function [ ] = pgm2jpg( ) % 读取指定目录 ...
- MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)
MATLAB读取nc数据并实现可视化 (以全球海洋风场反演为例-更新版) 1.海面风场数据下载 从ECNWF(https://apps.ecmwf.int/datasets/data/era40-da ...
- 串口发送图片VGA显示
做fpga的图像处理,发送图片是比较简单的一步.使用ram结合串口及vga显示部分就可以很好的实现此功能. 实验目标: 使用uart发送大小为100*100的图片到vga显示屏幕上 实现思路: 十六位 ...
- ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现
上一篇文章,<Vitis ZYNQ开发秘籍>- PS 端任意控制 VGA 显示画面的硬件架构,已经介绍了在 Vivado 中需要调用的 IP 已经各 IP 间的连线.而在实现显示的功能,咱 ...
- NIOS2随笔——BMP解码与VGA显示
1. 系统概述 本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的BMP图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现BMP解码后,启动framerea ...
- FPGA实现VGA显示(六)——————多字符显示及基于fpga的“打字机”实现
前面笔者总结了如何显示单字符,设立通过一个简单的任务来总结如何实现vga多字符显示. 实验要求 基础: 由PC通过UART发送数据在VGA显示.数据可以为字母,数字,汉字(任选10个字),VGA分为左 ...
- python显示图片image_用Python语言显示图片的倒影效果
Python是一种强大的开源解释性语言,最初是在苹果计算机上被编译成功的,但现在它已经可以运行于世界上主流的操作平台之上了,对于常见的Linux和Windows平台的支持当然更不在话下.Python脚 ...
- VGA显示使用800*600的像素显示【转】
本实验的VGA显示使用800*600的像素显示,字体的点阵数据赋值给红色信号vga_r,所以在VGA的显示器上显示的字体颜色为红色.其中字体"黑"的点阵数据在VGA显示中的XY坐标 ...
最新文章
- codeforces 337D:树形dp[能到最远的一定可以到其他点]
- LPWSTR 类型的实参与const.char *类型形参不兼容
- axure选中后横线切换_3、开关状态切换 —— Axure实用交互
- java 重载 equals_实现Student类的equals重载函数
- caffe报错:Check failed: width <= datum_width (28 vs. 17)
- 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
- iQOO骑士黑版本四月亮相:搭载骁龙855+12G运存
- Visual Studio 2019 RC入门——第2部分
- 【转载】C/C++预处理指令
- Java基础:什么是List接口,如何去运用?
- Git 切换远程仓库地址三种方法
- 基于Springboot的个人健康监控管理系统 毕业论文+项目源码、
- 哈工大教授车万翔「自然语言处理中的伪数据」
- linux让grep带颜色,在linux下给grep命令添加颜色
- 计算两条线或多边形的交点(LineString | MultiLineString | Polygon )
- linux cpan 参数配置,CPAN 的使用
- NNDL 作业4:第四章课后题
- Java线程池实现多消费者批量处理队列消息
- jquery获取元素下面的所有指定元素
- winDebug 调试
热门文章
- Visual studio 内存不足的解决方案(out of memory)
- 解决新版本Vivado打开老工程IP锁住的问题
- Java 异常Exception e中e的getMessage()和toString()以及 e.printStackTrace();方法的区别
- 解决 VMWARE MAC 10.12无法全屏的问题
- jQuery获取所选单选按钮的值
- 在Chrome中禁用同一来源政策
- java mvc .net mvc_.NET MVC 和 JAVA MVC有什么区别?
- win11如何开启GUEST账户 windows11开启GUEST账户的设置方法
- 使用ros3d.js实现web 端3D建图
- mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参