如题,本文参考邓堪文老师的博文教程。

之前这个问题纠结了很久,就是在使用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显示相关推荐

  1. las文件matlab,基于Matlab的LAS格式数据解析与显示.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于Matlab的LAS格式数据解析与显示.pdf ...

  2. matlab 转换图片格式,Matlab实现图片格式转换 pgm转jpg等

    在Matlab下,转换图片格式相对比较容易,本文以 PGM 转 JPG 为例,贴出示例程序: % 将pgm图片批量转换为jpg图片 function [ ] = pgm2jpg( ) % 读取指定目录 ...

  3. MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)

    MATLAB读取nc数据并实现可视化 (以全球海洋风场反演为例-更新版) 1.海面风场数据下载 从ECNWF(https://apps.ecmwf.int/datasets/data/era40-da ...

  4. 串口发送图片VGA显示

    做fpga的图像处理,发送图片是比较简单的一步.使用ram结合串口及vga显示部分就可以很好的实现此功能. 实验目标: 使用uart发送大小为100*100的图片到vga显示屏幕上 实现思路: 十六位 ...

  5. ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现

    上一篇文章,<Vitis ZYNQ开发秘籍>- PS 端任意控制 VGA 显示画面的硬件架构,已经介绍了在 Vivado 中需要调用的 IP 已经各 IP 间的连线.而在实现显示的功能,咱 ...

  6. NIOS2随笔——BMP解码与VGA显示

    1. 系统概述 本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的BMP图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现BMP解码后,启动framerea ...

  7. FPGA实现VGA显示(六)——————多字符显示及基于fpga的“打字机”实现

    前面笔者总结了如何显示单字符,设立通过一个简单的任务来总结如何实现vga多字符显示. 实验要求 基础: 由PC通过UART发送数据在VGA显示.数据可以为字母,数字,汉字(任选10个字),VGA分为左 ...

  8. python显示图片image_用Python语言显示图片的倒影效果

    Python是一种强大的开源解释性语言,最初是在苹果计算机上被编译成功的,但现在它已经可以运行于世界上主流的操作平台之上了,对于常见的Linux和Windows平台的支持当然更不在话下.Python脚 ...

  9. VGA显示使用800*600的像素显示【转】

    本实验的VGA显示使用800*600的像素显示,字体的点阵数据赋值给红色信号vga_r,所以在VGA的显示器上显示的字体颜色为红色.其中字体"黑"的点阵数据在VGA显示中的XY坐标 ...

最新文章

  1. codeforces 337D:树形dp[能到最远的一定可以到其他点]
  2. LPWSTR 类型的实参与const.char *类型形参不兼容
  3. axure选中后横线切换_3、开关状态切换 —— Axure实用交互
  4. java 重载 equals_实现Student类的equals重载函数
  5. caffe报错:Check failed: width <= datum_width (28 vs. 17)
  6. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
  7. iQOO骑士黑版本四月亮相:搭载骁龙855+12G运存
  8. Visual Studio 2019 RC入门——第2部分
  9. 【转载】C/C++预处理指令
  10. Java基础:什么是List接口,如何去运用?
  11. Git 切换远程仓库地址三种方法
  12. 基于Springboot的个人健康监控管理系统 毕业论文+项目源码、
  13. 哈工大教授车万翔「自然语言处理中的伪数据」
  14. linux让grep带颜色,在linux下给grep命令添加颜色
  15. 计算两条线或多边形的交点(LineString | MultiLineString | Polygon )
  16. linux cpan 参数配置,CPAN 的使用
  17. NNDL 作业4:第四章课后题
  18. Java线程池实现多消费者批量处理队列消息
  19. jquery获取元素下面的所有指定元素
  20. winDebug 调试

热门文章

  1. Visual studio 内存不足的解决方案(out of memory)
  2. 解决新版本Vivado打开老工程IP锁住的问题
  3. Java 异常Exception e中e的getMessage()和toString()以及 e.printStackTrace();方法的区别
  4. 解决 VMWARE MAC 10.12无法全屏的问题
  5. jQuery获取所选单选按钮的值
  6. 在Chrome中禁用同一来源政策
  7. java mvc .net mvc_.NET MVC 和 JAVA MVC有什么区别?
  8. win11如何开启GUEST账户 windows11开启GUEST账户的设置方法
  9. 使用ros3d.js实现web 端3D建图
  10. mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参