SG图像直通系统
0赞System Generator完成图像的直通系统,版本vivado 14.3+matlab2014a

最简单的系统,其中用到两个模块,分别为(From Workspace,和To Workspace);接下来进行分别介绍:
FromWorkspace,是从文件中读取数据,可以是一维二维矩阵,因为做图像处理,并考虑到实施时性,硬件图像处理一般考虑一维数据流,本例也是。
ToWorkspace是把数据进行输出,本文采用二维输出,因为是图片。
接下在
1)model空间右键点击对Model Properties进行设置
2)点击Callbacks,在左侧出现回调函数设置窗口,
3)点击PreLoadFcn*,在右侧空白处输入LoadImage,意思为在模块打开前调用LoadImage函数(.m),文件,在StopFcn*中输入ShowImage,即为显示。
接下来是对LoadImage,ShowImage两个函数,.m文件进行编辑。
在matlab主窗口分别新建两个.m文件并以上两个函数命名。
LoadImage.m:
a=imread('abc.jpg'); %在工作目录准备图片abc.jpg
ImageWidth=size(a,2) %获取图像的长宽
ImageHeight=size(a,1)
r=a(:,:,1); %获取图片的R分量
figure(1);
imshow(a);
figure(2);
imshow(r);
b=reshape(r,[],1); %对数组R进行排布,成为一列
b=[double(1:ImageWidth*ImageHeight)' double(b)]; %b变为二维数组
DesignLatency=0; %DesignLatency系统延时,本例为0.
ShowImage:
DestImage2D=reshape(Dest1D(DesignLatency:DesignLatency+ImageWidth*ImageHeight-1),ImageHeight,[]);
h=figure;
clf;
colormap(gray(256));
set(h,'name','Bypass Results');
subplot(1,2,1);
image(a),...
axis equal,axis square,axis off,title 'InputImage';
subplot(1,2,2);
image(DestImage2D),axis equal,axis square,axis off;
filterTitle='Output Image';
title(filterTitle)
colormap(gray(256));
注视:本文参考自《多媒体处理FPGA实现》一书,十分感谢!
