当前位置:网站首页>Image processing 2: mean filtering
Image processing 2: mean filtering
2022-07-23 13:52:00 【Liu Yaner】
Preface
Text
a key
- Generate a 3×3 Matrix
- Pay attention to the synchronization of signals
// Mean filtering
module mean_filter
(
//global clock
input clk, //cmos video pixel clock
input rst_n, //global reset
//Image data prepred to be processd
input per_frame_vsync, //Prepared Image data vsync valid signal
input per_frame_href, //Prepared Image data href vaild signal
input per_frame_clken, //Prepared Image data output/capture enable clock
input [7:0] per_img_Y, //Prepared Image brightness input
//Image data has been processd
output post_frame_vsync, //Processed Image data vsync valid signal
output post_frame_href, //Processed Image data href vaild signal
output post_frame_clken, //Processed Image data output/capture enable clock
output [7:0] post_img_Y //Processed Image Bit flag outout(1: Value, 0:inValid)
);
//----------------------------------------------------
//Generate 8Bit 3X3 Matrix for Video Image Processor.
//Image data has been processd
wire matrix_frame_vsync; //Prepared Image data vsync valid signal
wire matrix_frame_href; //Prepared Image data href vaild signal
wire matrix_frame_clken; //Prepared Image data output/capture enable clock
wire [7:0] matrix_p11, matrix_p12, matrix_p13; //3X3 Matrix output
wire [7:0] matrix_p21, matrix_p22, matrix_p23;
wire [7:0] matrix_p31, matrix_p32, matrix_p33;
// Use Shift_RAM_3X3 structure 3X3 The template of
Shift_RAM_3X3 Shift_RAM_3X3_inst
(
//global clock
.clk (clk), //cmos video pixel clock
.rst_n (rst_n), //global reset
.per_frame_vsync (per_frame_vsync), //Prepared Image data vsync valid signal
.per_frame_href (per_frame_href), //Prepared Image data href vaild signal
.per_frame_clken (per_frame_clken), //Prepared Image data output/capture enable clock
.per_img_Y (per_img_Y), //Prepared Image brightness input
//Image data has been processd
.matrix_frame_vsync (matrix_frame_vsync), //Prepared Image data vsync valid signal
.matrix_frame_href (matrix_frame_href), //Prepared Image data href vaild signal
.matrix_frame_clken (matrix_frame_clken), //Prepared Image data output/capture enable clock
.matrix_p11(matrix_p11), .matrix_p12(matrix_p12), .matrix_p13(matrix_p13), //3X3 Matrix output
.matrix_p21(matrix_p21), .matrix_p22(matrix_p22), .matrix_p23(matrix_p23),
.matrix_p31(matrix_p31), .matrix_p32(matrix_p32), .matrix_p33(matrix_p33)
);
//---------------------------------------------//
//step1: Add each row of data
reg [9:0] mean_value1;
reg [9:0] mean_value2;
reg [9:0] mean_value3;
[email protected](posedge clk or negedge rst_n)begin
if(!rst_n)
begin
mean_value1 <= 0;
mean_value2 <= 0;
mean_value3 <= 0;
end
else
begin
mean_value1 <= matrix_p11 + matrix_p12 + matrix_p13;
mean_value2 <= matrix_p21 + 8'd0 + matrix_p23;
mean_value3 <= matrix_p31 + matrix_p32 + matrix_p33;
end
end
//step2:3 Add row data
reg [11:0] mean_value;
[email protected](posedge clk or negedge rst_n)begin
if(!rst_n)
mean_value <= 0;
else
mean_value <= mean_value1 + mean_value2 + mean_value3;
end
//------------------------------------------
//lag 2 clocks signal sync
reg [1:0] per_frame_vsync_r;
reg [1:0] per_frame_href_r;
reg [1:0] per_frame_clken_r;
[email protected](posedge clk or negedge rst_n)begin
if(!rst_n)
begin
per_frame_vsync_r <= 0;
per_frame_href_r <= 0;
per_frame_clken_r <= 0;
end
else
begin
per_frame_vsync_r <= {
per_frame_vsync_r[0], matrix_frame_vsync};
per_frame_href_r <= {
per_frame_href_r [0], matrix_frame_href};
per_frame_clken_r <= {
per_frame_clken_r[0], matrix_frame_clken};
end
end
assign post_frame_vsync = per_frame_vsync_r[1];
assign post_frame_href = per_frame_href_r [1];
assign post_frame_clken = per_frame_clken_r[1];
assign post_img_Y = post_frame_href ? mean_value/16 : 8'd0;
endmodule
边栏推荐
猜你喜欢

Detailed explanation of decision tree

Error running ‘XXX‘: Command line is too long. Shorten command line for AudioTest or also ...

Redis常用命令

C #: in, out, ref Keywords

欧洲“气荒”对中国有哪些影响?

Vs2019:constexpr function "qcountleadingzerobits" cannot generate constant expressions

建立STM32F103C8T6工程模板和STM32 ST-LINK Utilit烧录hex文件
![[JS advanced] basics of regular expressions - about regular expressions you want to know_ 01](/img/b8/7961a3c4375c93971ddd74b1a2473f.jpg)
[JS advanced] basics of regular expressions - about regular expressions you want to know_ 01

Learn about canvas

一篇文章教会你使用kubernetes的基本使用
随机推荐
数据库系统原理与应用教程(052)—— MySQL 的数据完整性(十四):交叉表查询(行列转换)
Remote editing and debugging with vscode
十大券商开户风险性大吗,安全吗?
Image processing 5: expansion
2022-07-22 review linked list operation and some problems
图像处理4:腐蚀
数据库系统原理与应用教程(043)—— MySQL 查询(五):对查询结果排序
图像处理:生成3×3的窗口
docker redis
prometheus+node-exporter+grafana 监控服务器系统资源
基于OpenCV实现对图片及视频中感兴趣区域颜色识别
C#:in、out、ref关键字
Tutorial on principles and applications of database system (040) -- MySQL query (II): set the column name or expression to be queried
图像处理2:均值滤波
反常积分的审敛
关于#redis#的问题:Redis设置数据持久化之后还是会有丢失数据的风险
These five points should be considered in the production of enterprise science and technology exhibition hall
2. Les règles quantitatives
Unity about local loading pictures involves webrequest or byte
MATLAB:将PNG图片转成txt文件