题目要求在keil上实现对图像的基本操作处理:旋转,翻转等等
我从来没有用过keil,不太熟悉 ,不知道和在vs上面编程有什么区别?
我发现keil无法导入图像,那么如何对图像数据进行处理呢?
网上思路是将处理的图像数据放入hex文件中,然后转化成bin文件,在转换成raw图像文件
1最一开始如何将图像数据导入keil中呢?以什么形式导入呢?
2假设导入数据处理后怎么将处理的数据放入hex文件呢?
3如何在keil上对图像文件进行操作?和在vs上对图像处理的编码有什么区别?
是不是在keil上进行一定操作后再生成一个新的hex文件这样把新hex文件再转换为raw图像就可以实现在keil上图像处理了?
主要目的就是在keil上实现图像的旋转
问题是不清楚具体的操作过程,不熟悉keil(只掌握了基本的编译方法,会生成hex文件)
总体的思路十分不清晰
单片机处理的都是二进制数据,keil如何处理图片那么就将原始图片转换为二进制文件,图片直接用UE打开应该就是二进制存储形式,然后保存为dat文件,再用Keil读写,处理,最后保存出来再转换成图片格式查看(以上均为我自己考虑😂)
KEIL写的程序主要是给单片机跑的,没有那些图片的库,如果你只是转换图片还是建议用VS、QT些给PC编程的软件。
原题是:导入一灰度图像,在arm处理器上编程,并导出图像
网上有好多的提取图片文件数据的工具,尤其是bmp文件,结构公开。简单,用百度搜索 “C语言读取和存储bmp格式图片"都可以找到,提取到数据后,可以吧数据存储成txt文件、c文件或。h文件,你可以吧这些数据进一步封装为变量或者指针数据区,就可以加入keil的工程。你的其他代码可以直接使用
关键词:图像导入,处理,导出,arm
1.ARM Cortex-A 平台,该arm平台多为soc,系统级芯片。可运行linux,通过opencv图形处理库即可完成你要的功能。过程:将某格式图片存放至
linux系统中,通过调用opencv相关库或例程(c++ 或 python)对图片进行灰度处理,旋转等等操作,可通过外接屏幕显示相应操作过程及结果。
难点:需要使用linux系统及opencv,需要熟悉c++或python
2.ARM Cortex-M 平台,该平台位arm的单片机系列内核,例如主流的STM32系列,该系列多运行裸机及RTOS,导入图片可以使用(方式一):在pc中使用转化工具将某格式图片转换为hex,将该hex在keil IDE中直接以数组的形式进行定义,在arm单片机平台外接显示屏的情况下,通过对显示屏打点的方式显示该数组数据,即为该图片,通过变换数组的方式,进行图片的旋转。(方式二):引入文件系统和图片格式处理库,例如在arm单片机平台下使用SDIO接口连接sd卡,将图片存入sd卡中,程序中则需要引入如FATFS的文件系统以一定格式去浏览存储器中的文件,将图像文件读出,同时在图像格式解析库的作用下对图片进行解析,处理,显示。
难点:该平台非常底层,需要对所使用的单片机极为了解
你的问题:
1最一开始如何将图像数据导入keil中呢?以什么形式导入呢?
2假设导入数据处理后怎么将处理的数据放入hex文件呢?
3如何在keil上对图像文件进行操作?和在vs上对图像处理的编码有什么区别?
解答:
一:如何将图像数据导入keil中?以什么形式导入呢?
1,利用PS等软件将图片改成黑白的,缩小到液晶屏大小,并存为BMP格式的图片
2,利用工具软件(例PCtoLCD2002.exe)导入图片,生成代码(一个C语言的数组)
3,将生成的代码拷贝到C文件中,存在一个数组中。
二:假设导入数据处理后怎么将处理的数据放入hex文件呢?
1,当KEILC程序编译后,图片就在HEX文件中了
三:如何在keil上对图像文件进行操作?和在vs上对图像处理的编码有什么区别?
1,KEILC对文字和图片的显示,是单片机对液晶屏的写操作。向液晶屏厂家索取液晶屏的DEMO程序,里面会用画点,画线,画圆,画图,写字等函数
2,寻一个合适的函数(画点或画图),选择好液晶屏的地址,将地址,图片数组代入到函数中去,单片机就在液晶屏上画了一张图。
3,VS对图片的处理,是直接读取一个文件(需要已知文件路径)或打开一个文件,将图片作为背景或前景显示。比单片机方便多了。