FPGA-中值滤波(1)代码
module shift_ram_3_8bit
#(
parameter Ram_Length = 'd640
)
(
clken,
clock,
shiftin,
shiftout,
taps0x,
taps1x); input clken;
input clock;
input [:] shiftin;
output [:] shiftout;
output [:] taps0x;
output [:] taps1x;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri1 clken;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif wire [:] sub_wire0;
wire [:] sub_wire1;
wire [:] shiftout = sub_wire0[:];
wire [:] sub_wire3 = sub_wire1[:];
wire [:] sub_wire2 = sub_wire1[:];
wire [:] taps0x = sub_wire2[:];
wire [:] taps1x = sub_wire3[:]; altshift_taps ALTSHIFT_TAPS_component (
.clock (clock),
.clken (clken),
.shiftin (shiftin),
.shiftout (sub_wire0),
.taps (sub_wire1)
// synopsys translate_off
,
.aclr ()
// synopsys translate_on
);
defparam
ALTSHIFT_TAPS_component.intended_device_family = "Cyclone IV E",
ALTSHIFT_TAPS_component.lpm_hint = "RAM_BLOCK_TYPE=M9K",
ALTSHIFT_TAPS_component.lpm_type = "altshift_taps",
ALTSHIFT_TAPS_component.number_of_taps = ,
ALTSHIFT_TAPS_component.tap_distance = Ram_Length,
ALTSHIFT_TAPS_component.width = ; endmodule
不同的地方
//浠跨湡
`timescale 1ns/1ns
module Generate_Matrix_3x3_8bit_tb;
//system
reg clk ; //时钟或是摄像头或是vga coms_clk , vga_clk
reg rst_n ; //复位
//coms or vga
reg pre_vs ; //行有效
reg pre_hs ; //场有效
reg pre_en ; //数据有效使能
reg [7:0] pre_img_Y ; //输出的灰度数据
wire [7:0] matrixp11,matrixp12,matrixp13;
wire [7:0] matrixp21,matrixp22,matrixp23;
wire [7:0] matrixp31,matrixp32,matrixp33;
wire matrix_vs ;
wire matrix_hs ;
wire matrix_en ;
initial clk = 1;
always #5 clk = ~clk;
initial begin
rst_n = 0;
pre_vs =0 ;
pre_hs = 0;
pre_en = 0;
pre_img_Y = 0;
#51;
rst_n = 1;
pre_vs = 1;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
$stop;
end
reg [7:0] shiftin;
always@(posedge clk or negedge rst_n ) begin
if(!rst_n)
shiftin <= 'd1;
else if(pre_en)
shiftin <= shiftin + 1'b1;
else
shiftin <= shiftin;
end
Generate_Matrix_3x3_8bit Generate_Matrix_3x3_8bit(
//system
.clk (clk ), //时钟或是摄像头或是vga coms_clk , vga_clk
.rst_n (rst_n ), //复位
//coms or vga
.pre_vs (pre_vs ), //行有效
.pre_hs (pre_hs ), //场有效
.pre_en (pre_en ), //数据有效使能
.pre_img_Y ( shiftin ), //输出的灰度数据
.matrixp11 (matrixp11 ),
.matrixp12 (matrixp12 ),
.matrixp13 (matrixp13 ),
.matrixp21 (matrixp21 ),
.matrixp22 (matrixp22 ),
.matrixp23 (matrixp23 ),
.matrixp31 (matrixp31 ),
.matrixp32 (matrixp32 ),
.matrixp33 (matrixp33 ),
.matrix_vs (matrix_vs ),
.matrix_hs (matrix_hs ),
.matrix_en (matrix_en )
);
endmodule
FPGA-中值滤波(1)代码的更多相关文章
- 基于FPGA的中值滤波算法实现
在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...
- verilog实现中值滤波
前言 项目需要,想要实现算法中的其中一步即中值滤波,同时,因为图像处理部分中值滤波相对来说还是比较简单的,将中值滤波的硬件实现作为进入FPGA领域的第一次尝试.虽然说网上有较多关于中值滤波的文档,可是 ...
- 基于MATLAB的中值滤波算法实现
在实时图像采集中,不可避免的会引入噪声,尤其是干扰噪声和椒盐噪声,噪声的存在严重影响边缘检测的效果,中值滤波是一种基于排序统计理论的非线性平滑计数,能有效平滑噪声,且能有效保护图像的边缘信息,所以被广 ...
- 学习 opencv---(8)非线性滤波:中值滤波,双边滤波
正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...
- 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1. 背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...
- 3D Slicer中文教程(七)—图像中值滤波
1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...
- 机器学习进阶-阈值与平滑-图像平滑操作(去噪操作) 1. cv2.blur(均值滤波) 2.cv2.boxfilter(方框滤波) 3. cv2.Guassiannblur(进行高斯滤波) 4. cv2.medianBlur(进行中值滤波)
1.cv2.blur(img, (3, 3)) 进行均值滤波 参数说明:img表示输入的图片, (3, 3) 表示进行均值滤波的方框大小 2. cv2.boxfilter(img, -1, (3, ...
- PIE SDK中值滤波
1.算法功能简介 中值滤波是一种最常用的非线性平滑滤波器,它将窗口内的所有像素值按高低排序后,取中间值作为中心像素的新值. 中值滤波对噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘, ...
- 中值滤波C语言优化
中值滤波C语言优化 图像平滑是图像预处理的基本操作,本文首先用不同的方法对一张图片做预处理比较它们效果的不同,然后针对中值滤波,实现了一种快速实现.(其实是copy的opencv实现,呵呵).因为op ...
- verilog 实现中值滤波
图像信号在形成.传输和记录的过程中,由于成像系统.传输介质.工作环境和记录设备等的固有缺陷,不可避免地产生各种类型的噪声,降低了图像的质量,进而影响后续处理(如边缘检测.图像分割.特征提取.模式识别等 ...
随机推荐
- "字体图标"组件:<icon> —— 快应用组件库H-UI
 <import name="icon" src="../Common/ui/h-ui/basic/c_icon"></import> ...
- IDEA永久激活码获取
废话少说,直接上地址:http://idea.medeming.com/jet/ *小编还是建议,有家底的程序猿还是直接买正版的号,非正版的很多不便的地方~
- Spring温习(1)--最基础的示例
Spring温习(1)--最基础的示例 博客分类: 框架-Spring专栏 SpringXMLBeanWebDAO 从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 ...
- 本地项目推送到Github
1.在github上repositories新建一个git项目工程 2.使用git,把刚建好的项目clone到本地 3.把本地项目中的文件全部移动到下载下来的git项目中,以下是我本地项目中的文件 4 ...
- ValidForm.js的使用注意点
dataType的值不能为"", 否则会导致错误发生:Uncaught TypeError: Cannot read property '0' of null,http请求可以发送 ...
- Daily Scrum 12/25/2015
Process: Zhaoyang: Implement the Alex 50M model in the Caffe framework. Yandong: The Azure Back end ...
- 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom
最长上升子序列o(nlongn)写法 dp[]=a[]; ; ;i<=n;i++){ if(a[i]>dp[len]) dp[++len]=a[i]; ,dp++len,a[i])=a[i ...
- Python实现按键精灵(一)-键鼠操作
需要安装 pywin32库 pip install pywin32 import win32api import time #鼠标移动 def mouse_move(x,y): win32api.Se ...
- docx4j docx转html
不好用,转完问题挺多,百度还找不到资料头疼.public static void docxToHtml(String fileUrl) throws Exception { String path = ...
- Redis的三大问题
一般我们对缓存读操作的时候有这么一个固定的套路: 如果我们的数据在缓存里边有,那么就直接取缓存的. 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中. 最后将数据 ...