CCS5.5从硬盘读入.dat数据格式的单张图像
来源:互联网 发布:面向对象编程语言 编辑:程序博客网 时间:2024/04/28 06:08
当我们使用CCS5.5编写处理单张图像的算法工程时,涉及到如何导入硬盘里的图像数据到DSP指定内存里的问题。下面做一下介绍。(整个工程代码下载:http://download.csdn.net/detail/luokh327/9483582)
1、使用MATLAB将需要导入的图像转换成DSP能识别格式的二进制(.dat)文件;
function CreateImgDat()clc;close all;clear all;%说明:生成DSP实验所用的图像数据Dat文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I = imread('D:\MyProject\Matlab\picture\lena2.BMP');%打开图像,这里改成自己的图像名及路径%将图像缩小一点,不然数据量太大I = imresize(I,[128,128],'bicubic');%<span style="color:#ff0000;">缩小成128*128、二维FFT时需要图像为2的n次方</span>figure,imshow(I);%显示图像[N M dim] = size(I);%获取图像的高与宽if(dim == 3) I = rgb2gray(I);%如果打开的是彩色图像,则转换成灰度图像endfid = fopen('D:\MyProject\Matlab\data\lena128x128.dat','w');%保存.dat图像数据文件fprintf(fid,'%d %d %s %d %d\n',1651,2,'8cc0',0,N*M);%写入二进制文件的第一行%将图片数据写入Dat文件中for n = 1:N for m = 1:M fprintf(fid,'%d\n',I(n,m)); endendfclose(fid);disp('Run OK')
2、配置MyFFTproject.cmd文件,为导入图像分配内存
-c-stack 0x00020000 /* Stack Size */-heap 0x00020000 /* Heap Size */MEMORY{ VECS: o = 0x00000000 l = 0x00000080 IRAM: o = 0x00000080 l = 0x00007f80 /* 32 kBytes */ DRAM: o = 0x00010000 l = 0x00008000 /* 32 kBytes */ DDR2: o = 0x80000000 l = 0x04000000 /* 128 MBytes */ DDR2_VIDEO: o = 0x84000000 l = 0x04000000 /* 128 MBytes */}SECTIONS{.bss > DDR2 .cinit > DDR2 .cio > DDR2 .const > DDR2 .data > DDR2 .far > DDR2 .stack > DDR2 .switch > DDR2 .sysmem > DDR2 .text > DDR2 .ddr2 > DDR2
.IMG > DDR2_VIDEO//导入图像的地址
//以下为二维FFT计算时需要用到的内存分配.Source > DDR2_VIDEO.Scale > DDR2_VIDEO.Out > DDR2_VIDEO.tdd > DDR2_VIDEO.fdd > DDR2_VIDEO.W > DDR2_VIDEO.X1 >DDR2_VIDEO.X2 > DDR2_VIDEO.TempT > DDR2_VIDEO.TempF > DDR2_VIDEO}然后在main.c文件里连接内存,使用语句:
#pragma DATA_SECTION(IMG,"DDR2_VIDEO");int IMG[16385];//此处数组大小为导入图像的大小(128 × 128),然后在接下来的函数中就可以使用图像数据了。
3、在CCS5.5的Tools-->Load Memory里加载数据;
4、运行算法(我的是单张图像的FFT及扩展2倍大小加入退化函数,然后滤波IFFT,若算法不一样,此项会不同);
二维图像的FFT及IFFT的DSP实现看:
利用DM6437/DM642实现单张图像的FFT、IFFT以及全逆滤波、维纳滤波
http://blog.csdn.net/luokh327/article/details/51083769
5、使用Tools-->Image Analyzer来显示出来过程中的图片:;
点击Image Analyzer后,在软件下发会出现下图,然后鼠标右键设置Properties:
设置图像显示的细节,包括图像大小,RGB/YUV的起始地址、灰度级等(里面的参数具体的值可以多试一试,直到显示正常为止):
最后在Image里右键Refresh显示图像:
总结:使用CCS3.3+TMS320DM342处理图像可参考《DSP原理及图像处理应用--赵小强》,里面对于单张图像的处理介绍很详细。
1 0
- CCS5.5从硬盘读入.dat数据格式的单张图像
- C++图像处理中从硬盘读入图像文件,并将相应数据赋值给图像类的char**data成员
- Matlab如何从dat或者txt文件读入数据
- 从键盘读入一行字符,把其中的字母字符一次存放在磁盘文件f2.dat中。再把它从磁盘文件读入程序,将其中的小写字母改为大写字母,再存入磁盘文件f3.dat
- ReadFile-从硬盘中读入文件
- 图像的读入与读出
- 图像的读入与写出
- 图像颜色的数据格式 - PixelFormat
- PixelFormat 图像颜色的数据格式
- 关于CCS5.5的字体设置
- 一种基于单张图像的去雾算法研究
- 基于opencv的单张图像去雾算法(一)
- 基于opencv的单张图像去雾算法(二)
- 基于opencv的单张图像去雾算法(三)
- AOI中单张图像处理的误区与解决之道
- 基于Transformation Generation的单张图像视频生成
- 基于opencv的单张图像去雾算法(一)
- 基于opencv的单张图像去雾算法(二)
- Nand flash ecc校验
- ubuntu14.04开启休眠(Hibernate)
- Android Studio系列教程四--Gradle基础
- 创建 Win32 应用程序 (C++)
- Java的入门知识和准备步骤
- CCS5.5从硬盘读入.dat数据格式的单张图像
- Intent和IntentFilter区别
- CocoaPods安装和使用教程
- 突击Mercurial SCM(HG)12---解决repository is unrelated的问题
- Android Studio系列教程五--Gradle命令详解与导入第三方包
- 线性表的实现(四)双向链表
- linux 上安装tomcat、进行相关设置、处理部分部署问题
- osg中实现HUDAxis功能
- 二叉排序树的基本操作(完整代码)