野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9977|回复: 7

怎么读入图片并写成数组形式?

[复制链接]
发表于 2017-2-13 11:48:39 | 显示全部楼层 |阅读模式
有个512*24的二值图片,怎么读入并写成数组形式,MATLAB很简单,直接imread就可以,求教前辈们在KEIL里怎么做啊~~~
回复

使用道具 举报

发表于 2017-2-13 14:11:46 | 显示全部楼层
定义一个数组,然后用f_read读取
回复 支持 反对

使用道具 举报

发表于 2017-2-13 14:23:24 | 显示全部楼层
数据转换后再读取,和2楼说的一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 14:41:29 | 显示全部楼层
flyleaf 发表于 2017-2-13 14:11
定义一个数组,然后用f_read读取

非常感谢!我看了下有关f_read的内容,还是不知道该怎么使用,能不能给我个例子让我看看啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 14:57:20 | 显示全部楼层
flyleaf 发表于 2017-2-13 14:11
定义一个数组,然后用f_read读取

我在网上找到个例子
b = f_open(&infile,"SD.txt",FA_READ);  //以读方式打开文件
f_read(&infile,buff1,50,&rc);  //从文件内读50字节赋给 buff1数组
f_close(&infile);   //关闭文件
然后仿照着写了一下,我理解的是infile是临时存储单元,buff1是最终需要的数组,问题是
1.我打开f_open没发现这个函数有return,所以不知道b该怎么定义
2.infile提示没有被定义,这个也不清楚。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 14:58:58 | 显示全部楼层
牧人行歌 发表于 2017-2-13 14:23
数据转换后再读取,和2楼说的一样

非常感谢!请问能详细解释下吗,我找过资料了,但还是不是很清楚。。。
回复 支持 反对

使用道具 举报

发表于 2017-2-15 17:46:20 | 显示全部楼层
house一伯 发表于 2017-2-15 14:57
我在网上找到个例子
b = f_open(&infile,"SD.txt",FA_READ);  //以读方式打开文件
f_read(&infile,buf ...

f_open的返回值:typedef enum {
        FR_OK = 0,                                /* (0) Succeeded */
        FR_DISK_ERR,                        /* (1) A hard error occurred in the low level disk I/O layer */
        FR_INT_ERR,                                /* (2) Assertion failed */
        FR_NOT_READY,                        /* (3) The physical drive cannot work */
        FR_NO_FILE,                                /* (4) Could not find the file */
        FR_NO_PATH,                                /* (5) Could not find the path */
        FR_INVALID_NAME,                /* (6) The path name format is invalid */
        FR_DENIED,                                /* (7) Access denied due to prohibited access or directory full */
        FR_EXIST,                                /* (8) Access denied due to prohibited access */
        FR_INVALID_OBJECT,                /* (9) The file/directory object is invalid */
        FR_WRITE_PROTECTED,                /* (10) The physical drive is write protected */
        FR_INVALID_DRIVE,                /* (11) The logical drive number is invalid */
        FR_NOT_ENABLED,                        /* (12) The volume has no work area */
        FR_NO_FILESYSTEM,                /* (13) There is no valid FAT volume */
        FR_MKFS_ABORTED,                /* (14) The f_mkfs() aborted due to any parameter error */
        FR_TIMEOUT,                                /* (15) Could not get a grant to access the volume within defined period */
        FR_LOCKED,                                /* (16) The operation is rejected according to the file sharing policy */
        FR_NOT_ENOUGH_CORE,                /* (17) LFN working buffer could not be allocated */
        FR_TOO_MANY_OPEN_FILES,        /* (18) Number of open files > _FS_SHARE */
        FR_INVALID_PARAMETER        /* (19) Given parameter is invalid */
} FRESULT;

1.所以你只用关系f_open是否成功就OK。
2.你少了f_mount,并且都要判断是否成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-16 09:15:25 | 显示全部楼层
suny1022 发表于 2017-2-15 17:46
f_open的返回值:typedef enum {
        FR_OK = 0,                                /* (0) Succeeded */
        FR_DISK_ERR,                        /* (1) A hard  ...

谢谢你!我再试着改一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-14 20:32 , Processed in 0.029141 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表