sobel算子我就不多做介绍了,这东西在网上一搜一大把,大家可以自行去看看。我这里也给大家贴出两篇博文,是两位大神做的代码,大家可以参考一下。这是真 oo无双大神的方法,我用的也是与这类似的办法,大家看一看,绝对是很好的帖子
还有一位的帖子这位大神的方法虽然确实简洁了些,但那个取像素的IP核究竟是什么,他却没有说明。我自己去quartus ii里找了一下,发现那个IP核无法使用,我用其他的方法代替,发现不行,所以他的这种方法就只能放弃了。
这两位大神的方法都很不错,不过对于我这个小菜鸟来说还是有不懂的地方,比如 真 oo无双 大神的代码里,判断边缘的那一块有一句 0 : 1023,这个1023的来源我死活想不明白,后来忽然顿悟,才想起来这是默认的十进制,那么化成二进制也就是10’b1111_1111,也就是十位位宽的最大值。就这么一个小小的问题,让我这个脑子笨的人想了好久!!
好了,说了这么多言归正转。
我们知道,sobel算子有两个方向上的卷积模板(Gx和Gy),这两个模板的数据是现成的。我们只要用这两个模板,分别与原始图像的33窗口做卷积运算,然后求他们的平方和,再用SQRT(altera的IP核,专为开根号而设计)开方就可以得到G。
那么问题来了,这个原始图像像素的33窗口该如何获得?我搜了一下,已知的也就分为两类,一个就是我上面提到的真 oo无双大神的方法,想办法生成一个linebuffer,用linebuffer来生成33像素窗口,这个方法也是我采用的方法。第二种就是我提到的另一个大神的方法,用IP核直接产生九个像素,组成33窗口,但这里面有个问题,这位大神只字未提这究竟是个什么IP核,我虽然貌似找到了,但这IP核并不能用,因此这个方法只能放弃。
下面就说说linebuffer方面的问题吧。生成linebuffer不外乎
基于FPGA的sobel算子边缘检测一点小问题总结
最新推荐文章于 2024-04-26 08:30:15 发布

最低0.47元/天 解锁文章
4362

被折叠的 条评论
为什么被折叠?



