Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何在veriloghdl中实现拉普拉斯边缘检测_Image Processing_Verilog_Video Processing_Edge Detection_Vga - Fatal编程技术网

Image processing 如何在veriloghdl中实现拉普拉斯边缘检测

Image processing 如何在veriloghdl中实现拉普拉斯边缘检测,image-processing,verilog,video-processing,edge-detection,vga,Image Processing,Verilog,Video Processing,Edge Detection,Vga,我想在verilog HDl中实现拉普拉斯边缘检测。由于它是一个二阶导数,有人能告诉我用verilog HDL语言实现它的方法吗?有几篇文章可以帮助你实现它:,我用了一个长移位寄存器作为缓冲区。 在每个时钟中,像素数据右移,新数据进入 对于5*5掩码,我们可以定义(5-1)*行大小+maskwidth数组寄存器 然后,移位寄存器中作为像素(n)的中心数据可以通过像素数进行加法或减法。例如,对于平均过滤器n+1,n-1,n+rowsize,n-rowsize。 通常使用x和y的for循环来计算2D

我想在verilog HDl中实现拉普拉斯边缘检测。由于它是一个二阶导数,有人能告诉我用verilog HDL语言实现它的方法吗?

有几篇文章可以帮助你实现它:,

我用了一个长移位寄存器作为缓冲区。 在每个时钟中,像素数据右移,新数据进入

对于5*5掩码,我们可以定义
(5-1)*行大小+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];
这是指每个窗口像素乘以相应的遮罩值。maxlim是(maskwidth-1)/2,对于5*5的掩模尺寸,它是2。在x和y上求和可以解出像素n


结果可以发送到lcd或保存到ram。

以下是您首先需要了解的内容。第二,学习。第三,在Verilog中实现您的算法,当您遇到困难时,向我们展示您的代码,以便我们能够帮助您。我已经阅读了有关图像边缘检测的文档。我知道有各种查找边缘的方法,如Roberts、Sobel、laplacian等。这些方法都有内核和运算符。但就verilog代码而言,我不明白如何在verilog代码中实现拉普拉斯边缘检测。@sharvill111:我计划使用移位方法,将像素移动到矩形窗口。但我不知道二维数组是否可以在generate块内合成。@Sara这取决于合成工具。对于声明为类似于
[7:0]数组[10]
的数组,许多合成器都会创建类似于RAM的结构。