我想在verilog HDl中实现laplacian边缘检测。由于它是二阶导数,任何人都可以告诉我以什么方式将它用verilog HDL语言实现到框架中?
答案 0 :(得分:0)
有一些关于它的文章可以帮助您实施它:http://sciencepublication.org/ijast/documents/proceeding/46.pdf,http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5647070&tag=1
答案 1 :(得分:0)
我使用长移位寄存器作为缓冲区。 在每个时钟像素数据向右移动并且新数据进入。
对于5 * 5掩码,我们可以定义(5 - 1) * rowsize + maskwidth
数组寄存器。
然后移位寄存器中的中心数据作为像素(n)可以通过像素数加或减。例如,对于均值过滤器n + 1
,n - 1
,n + rowsize
,n - rowsize
。
通常使用x和y的for循环来计算2D掩模,这个公式可能很有用。
buffer[centerpixel + y*rowsize+x]) * mymask[(x+masklim)+(y+masklim)*maskwidth];
这引用每个窗口像素乘以相应的掩模vaule。 maxlim是(maskwidth-1)/ 2,对于5 * 5掩模大小是2。对x和y求和可以求解像素n。
结果可以发送到lcd或保存到ram。