本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 这篇博客主要是要讲怎么把一张图片存成一个二进制的文件,直接存到DSP中来做处理,而 ...
本文为原创作品,转载请注明出处
欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/
这篇博客主要是要讲怎么把一张图片存成一个二进制的文件,直接存到DSP中来做处理,而不用考虑DSP与图像采集模块,或者上位机之间的数据通信使得我们更加专注于算法的开发研究和处理功能的实现。
这是最近在做的一样工作,主要开发对雷达图像处理的目标检测算法。思路是先把现成的雷达图片转化为一个数组,然后以头文件的形式包含到程序中。用来验证算法和计算速度。DSP采用TI公司的6000系列单核处理器,6748。(背景交代完毕,可以忽略)。
开胃小菜---MATLAB size()函数 imread()函数
在matlab中,对于size函数,其返回值为:
[ROW,COL] = size(A),
例如:
A = [0, 1 ,2; 0, 1, 2];
size(A)
ans =
2 3
此处A为两行三列的矩阵
在读取一张图片之后,(此处默认为灰度图)返回一个矩阵,行数和列数则分别对应于图像的高度和宽度,
str1 = 'C:\Users\yezi\Desktop\dsp处理\';
str2 = '111.bmp';
str3 = strcat(str1,str2);
image = imread(str3);
在matlab中读一张在指定路径下的图片,matlab已经提供了一个imread()函数,它返回数字图片每一点像素的灰度值,存成一个矩阵image。
行数——高度
列数——宽度
图片高度宽度怎么看?
在图片上【右键】—【属性】—【详细信息】
在Opencv中同样提供一个imread函数,读取一个图片,并存为一个Mat类的对象。也是包含一个图像矩阵,行数列数与matlab是一样的。
把图片存成一个一维数组,然后在DSP中要把它恢复成一个二维矩阵,于是行数列数就显得相当重要。正是对这个函数的理解,解决了我在DSP中读取图片时把行数,列数搞混后出现错误,先记住它。
DSP6748读取图片相关介绍
在对DSP6748进行图像处理算法开发时,你可以利用fopen(),fread()函数,在CCS集成开发环境下,直接读取上位机中指定路径下的文件,但是这必须是在Debug模式下,通过仿真器进行链接才能实现。
在仿真模式下,通过仿真器读取上位机中的一张图片,需要耗费很长时间。因此为了算法调试的速度和需要,我把图片转化为一个头文件包含到程序中,这也是通常的做法。
图片转换为字符数组形式
TI提供的转换工具
TI公司提供了一个转换的小工具,在C6748_StarterWare包中,具体路径为:..\C6748_StarterWare_1_20_04_01\tools\bmp2c
具体用法:
- 把要转化的图片拷贝到该工具tools\bmp2c目录下
原标题:图像转换为二进制文件存入DSP6748
关键词:图像
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。