CCS5.5从硬盘读入.dat数据格式的单张图像

2015年11月03日 17:22:52           Kuanhuai_Luo           阅读数:5131                  
 

当我们使用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);%如果打开的是彩色图像,则转换成灰度图像
end
fid = 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));
end
end
fclose(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原理及图像处理应用--赵小强》,里面对于单张图像的处理介绍很详细。

【转】CCS5.5从硬盘读入.dat数据格式的单张图像的更多相关文章

  1. Opencv怎么读入,显示,保存图像-OpenCV步步精深

    怎么读入图像呢? 我们用 img = cv2.imread('图像路径\原图像名称',0) 原图像名称要有后缀 .png , .jpg等等原图像带有的后缀. 这里我们着重说明一下图像路径,这个路径一定 ...

  2. 使用 dd 命令进行硬盘 I/O 性能检测

    使用 dd 命令进行硬盘 I/O 性能检测 作者: Vivek Gite 译者: LCTT DongShuaike | 2015-08-28 07:30   评论: 1 收藏: 6 如何使用dd命令测 ...

  3. ffmpeg未整理好,有时间整理下

    v  容器(Container) v  容器就是一种文件(封装)格式,比如flv.mkv.ts.mp4.rmvb.avi等.包含下面5种流以及文件头信息. v  流(Stream) v  是一种视频数 ...

  4. 第十二节,TensorFlow读取数据的几种方法以及队列的使用

    TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...

  5. FFmpeg 基本用法--此文转载,作为笔记

    v  容器(Container) v  容器就是一种文件(封装)格式,比如flv.mkv.ts.mp4.rmvb.avi等.包含下面5种流以及文件头信息. v  流(Stream) v  是一种视频数 ...

  6. linux 中的页缓存和文件 IO

    本文所述是针对 linux 引入了虚拟内存管理机制以后所涉及的知识点.linux 中页缓存的本质就是对于磁盘中的部分数据在内存中保留一定的副本,使得应用程序能够快速的读取到磁盘中相应的数据,并实现不同 ...

  7. Oracle执行计划详解

    Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介:   ...

  8. 【转】Oracle执行计划解释

    Oracle执行计划解释 一.相关的概念     Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物 ...

  9. ORACLE执行详解

    本文源自TTT BLOG,原文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html 简介:     本文全面详细介绍oracle执行计 ...

随机推荐

  1. Windows EXE 依赖DLL查看

    dumpbin (这个是visual studio 提供的工具或者可以安装 Dependency Walker)来查看 DLL 依赖关系 dumpbin /dependents filename.ex ...

  2. 微信小程序 自定义tabbar实例

    在小程序的开发文档中,对tabbar是这样说明的: 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 t ...

  3. 【翻译】Flink Table Api & SQL —Streaming 概念 ——时间属性

    本文翻译自官网: Time Attributes   https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/str ...

  4. Pytest单元测试框架-测试用例运行规则

    1.Pytest测试用例运行规则 在pytest单元测试框架下面执行用例,需要满足以下几个特点: 1. 文件名以test_*.py开头或者*_test.py 2. 测试类.测试函数以test开头 3. ...

  5. win10锁住鼠标和键盘操作。

    以前做的一个winform自动更新程序没考虑到程序在更新过程中禁止操作被更新程序.现在加上了更新过程中锁住鼠标和大部分键盘. 碰到问题:用系统api -- BlockInput(true)锁住屏幕无效 ...

  6. idea2018.1.1版激活码到2020.7

    N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLCJhc3NpZ25lZU5hbWUiO ...

  7. controller进行数据保存以及作用域

    controller进行数据保存以及作用域 一.request域 1.ModelAndView 在ModelAndView中进行存键值对,也可以进行跳转的地址存储,但是返回类型必须是ModelAndV ...

  8. c++修改打印机名称

    public static bool SetPrinterName(string OldName, string newName) { IntPtr hPrinter; PrintAPI.struct ...

  9. TextField 、 FTE、 TLF 的使用情景和简单说明

    作者:tiangej 来源:CSDN 原文:https://blog.csdn.net/tiangej/article/details/16859239 版权声明:本文为博主原创文章,转载请附上博文链 ...

  10. HuTool之判断上传文件的文件类型

    文件类型判断-FileTypeUtil 由来 在文件上传时,有时候我们需要判断文件类型.但是又不能简单的通过扩展名来判断(防止恶意脚本等通过上传到服务器上),于是我们需要在服务端通过读取文件的首部几个 ...