lcytms 发表于 2017-5-2 11:13:55

0936
        而平方和、开方根,就要用到DSP了。
        用到平方器,还要用到开方根,那么无论是冈萨雷斯还是夏老师,采用了一种简便的算法。
        因为它们是连续函数,我们并不需要得到它的绝对值,准确值,我们只需要得到它的最大值,所以说就用绝对值来做,|D|=|Dx|+|Dy|。
        这个时候,D的绝对值最大的部分,它跟这个计算出来的平方和、开方根,是类似的。
        我们并不需要计算出它导数的最大值,就是这个导数的精确值。

lcytms 发表于 2017-5-2 11:15:20

0937
        我们只需要得到每一个像素点上,这个值比较大。
        所以说呢,这是一个简便的算法,这是用绝对值来替代平方和、开方根。
        使我们的算法简便了。
        并不需要得到它。
        这个公式,高等数学上说,是单调的,连续的。
        所以说它允许用绝对值来算。那么这样的话呢?
        我们就解决了这个问题,就是算X方向的偏导,Y方向的偏导。
        偏导的亮度,来计算出绝对值。
        但是偏导的亮度怎么得到呢?
        这个是由3*3的模板得到的。
        冈萨雷斯、夏老师和我们绿皮书上都不一样。
        正好相反。
        各有各的道理,往后再讨论。

lcytms 发表于 2017-5-2 11:16:17

0938
        我仍然比较倾向于我们的绿皮书教材。
        我们绿皮书教材里面的偏导数,它写成Gx,Gy,计算的方法是这样。

lcytms 发表于 2017-5-2 11:17:03

0939
        用模板对应坐标的亮度值。
        Dx,X方向,它的亮度的偏导数,用离散的方法得到。
        离散的方法推导的过程这里从略了,如果有兴趣的话呢,冈萨雷斯他有两个版本,数字图像处理,一个是matlab版,还有一个是数学版。
        matlab版呢也没有这个推导公式怎么推导出来的,但是数学版上有。
        就是这两个模板是怎么推出来的。
        用偏微分方程推出来的。

lcytms 发表于 2017-5-2 11:18:51

0940
        这个是它的系数。
        这是Cx,这是Cy。

lcytms 发表于 2017-5-2 11:19:28

0941
        用3*3的模板代进去。

lcytms 发表于 2017-5-2 11:20:54

0942
        根据这个模板不难得到。
        把亮度的值填到C模板里面,代入到这个公式里面。

lcytms 发表于 2017-5-2 11:22:18

0943
        这是亮度值在X方向的偏导。接下来,Dy。
        这就得到了Dx、Dy。
        算法就是这样。
        有了Dx、Dy,然后呢,我们求它的绝对值的时候,要么我们求平方和、开方根,要么我们简略掉,因为它是连续单调的,我们可以求它的绝对值。

lcytms 发表于 2017-5-2 11:24:09

0944
        Dx的绝对值加上Dy的绝对值,然后呢,判定哪个值比较大。
        得到的是一个什么呢?
        是一个偏导数。
        横轴和纵轴的偏导数,得到亮度的变化率图像。
        要得到图像的边缘怎么做呢?
        我们只需要确定亮度变化率,高于什么值,我们把它做成1,低于什么值做成0。

lcytms 发表于 2017-5-2 11:24:42

0945
        现在我来给大家做一遍。
页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: 跟李凡老师学FPGA图像加速器之D01:图像处理基础(20170425课堂笔记)