lcytms 发表于 2017-5-2 13:59:22

1015
        Sobel_filter_zx1702。
        命名要求看得懂,不相同。
        对接Memory。
        给出Memory的地址。

lcytms 发表于 2017-5-2 14:00:54

1016
        给出读写命令。
        为什么要读写呢?
        图像进来,那个Camera捕获到600*400图像。

lcytms 发表于 2017-5-2 14:01:49

1017
        读的时候当然要把原始图像读出来。
        得到导数以后,导数也要放进去。
        从原始图像算到了导数图像,放进去。
        我们只做到导数图像。
        因为有了导数图像,要得到图像的边缘,很简单。
        只需要把导数图像读出来,进行阈值切换,≥阈值输出为1,否则输出为0。
        我们看到了,白色地方为1,黑色地方为0。
        大家注意,夏老师或者我们绿皮书教材里面,并不是边缘图像,而是导数图像。

lcytms 发表于 2017-5-2 14:02:59

1018
        当然还要有mem_data,mem_q。
        这是对架构的讨论。
        然后呢,这个Sobel_filter做什么呢?
        它就是一个独立图像的滤波器,sobel的过滤器。
        这边给出一个启动信号,start。

lcytms 发表于 2017-5-2 14:04:01

1019
        Memory里面哪个区域放原始图像,哪个区域放导数图像,都已经定义下来了。
        一旦启动了,它就开始从BASE上,从基地址上,读出数据来。
        怎么读呢?
        这就是我们今天终于要讨论的问题。
        刚才我们已经知道算法了。
        用3*3的模板来做的。

lcytms 发表于 2017-5-2 14:05:30

1020
        Start以后,它就会用3*3的模板来扫描原始图像。
        算了一个导数,再写回去。
        按照流水,再写回到它的导数区。
        它的上游要发出Start。
        发出者是什么呢?
        它可能是游戏程序,是虚拟现实,也可能是人工智能的程序。
        总之它现在需要得到这个图像的边缘。
        这个程序发出start来,于是就有握手。
        一旦发出start之后,它会怎么样?
        它就busy了,就忙了。
        它不是一下子就能做完的。
        我们现在是600*400,做完之前,再来新的start是不可以的。
        所以说这里有一个done的握手,done为真,做完了。

lcytms 发表于 2017-5-2 14:07:35

1021
        当done为低电平的时候,逻辑是不应该发新的start的。
        除非done结束了。
        前一个图像边缘检测算法做完了以后它会发新的。
        然后呢,我们加上时钟、复位。
        我们先休息十分钟,之后我们来讨论该怎么算,算法实现的问题。
(休息)

lcytms 发表于 2017-5-2 14:08:25

1029
        现在我们来完成这个设计。
        我们用电子版来做。
        我开个头,然后我们一个组一个组地做。

lcytms 发表于 2017-5-2 14:09:20

1030
        用Matlab做的步骤方法,我到时候发给大家。
        很简单。
        新建一个doc文件夹和code文件夹。

lcytms 发表于 2017-5-2 14:11:58

1031
        将之前的文件移入doc文件夹。
        新建word文件图像_加速器课程设计报告.docx。
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: 跟李凡老师学FPGA图像加速器之D01:图像处理基础(20170425课堂笔记)