机灵兔子

SG图像直通系统

0
阅读(2261)

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

~_KD)LCTBNT8LT4T`NB0T%L.png

     最简单的系统,其中用到两个模块,分别为(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实现》一书,十分感谢!