图像的放大与缩小 |
您所在的位置:网站首页 › simulink怎么放大和缩小图像 › 图像的放大与缩小 |
一.项目起源 这是我们专业一门课的课程设计,总共分为三个模块,先开源其中的一部分;该模块与上一篇HDMI显示是同一个项目的一部分,如今,在我自己完成的基础上,对此进行分享,同时附上代码,代码我已经进行了上板验证,可以直接使用; HDMI显示链接: HDMI接口介绍及其代码_不想上体育课的博客-CSDN博客 二.实现方式 该模块使用增加或减少像素点的方式进行图像的放大与缩小; 假设原图如下: 放大一倍如下:将像素点进行复制,同理,两倍放大需要进行像素点的行列复制四次,这种方法适用于整数倍放大; 如何实现缩小?如图与原图进行对比:隔行,列进行降采样,同理,可得到其他缩小倍数; 三.部分主要代码实现讲解 (1)由于图像是从rom中读取的,总的像素不会变,所以需要进行额外赋值 (2)控制图像的显示大小,multiple是一个图像放大与缩小控制信号,由上一级的按键来控制(使用了两个按键,一个控制放大,一个控制缩小); (3)图像显示区域控制; (4)图像放大与缩小实现代码:用来进行行像素点的计数,同理,代码中相似的那一部分为列计数; 四.整体代码 (1)放大与缩小实现模块: //************************************************************************** // *** 名称 : hdmixs_display // *** 作者 : 不想上体育课 // *** 博客 : https://blog.csdn.net/m0_47220307?type=blog // *** 日期 : 2022.09 // *** 描述 : 显示图像区域设置 //************************************************************************** `timescale 1ns / 1ps module hdmixs_zoom( input wire clk_out1 , input wire rst_n , input wire [10:0] x_pixel , input wire [10:0] y_pixel , input wire [2 :0] multiple , output reg [9:0 ] IMG_HEIGHT, output reg [9:0 ] IMG_WIDTH , output reg rom_rd_en , output wire [23:0] rom_addr ); reg dis_flag; reg [1:0] cnt_mu ; reg [1:0] cnt_mu_col; //reg [9:0] IMG_HEIGHT; //reg [9:0] IMG_WIDTH ; reg [9:0] pos_x0; reg [9:0] pos_y0; reg [9:0 ] cnt_col; reg [9:0 ] cnt_row; reg [9:0 ] PIC_X ; reg [9:0 ] PIC_Y ; wire add_cnt_row; wire end_cnt_row; wire add_cnt_col; wire end_cnt_col; wire rom_rd_en1; wire start_flag; wire [32:0] IMG_TOTAL; wire [9:0 ] img_height; wire [9:0 ] img_width ; //assign dis_flag = ((y_pixel == pos_y0 + 1'b1) && (x_pixel == pos_x0)) ? 1'b1 : 1'b0; always@(posedge clk_out1 or negedge rst_n) if(rst_n == 1'b0) dis_flag |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |