本发明涉及图像处理,尤其涉及一种基于fpga的查表扫描式图像叠加系统及方法。
背景技术:
1、图像叠加的定义是将目标图像按一定比例的透明度叠加到原始图像上。该技术是图像处理技术中的一个重要部分,广泛应用于国防、工业、交通、医疗、能源、信息技术以及日常生活等领域。目前最广泛的应用是将字符、图形等目标图像叠加到原始图像上,及时给出和增加原图像画面无法表达或明确表达的信息,使画面图文并茂、实用醒目。
2、专利cn117221652a公开了一种基于vivado hls的图像叠加显示方法,使用vivadohls设计实现了两路实时视频流的 叠加:其中第一路待处理的视频流为直接输入的视频流,第二路待处理的视频流存储在存储器中,视频处理模块在进行处理时从存储器中读出第二路视频数据与第一路输入的视频流运算叠加生成一路视频流,两路视频流的叠加为透明度的叠加显示,但是只能实现2幅大小和位置相对固定的图像的叠加。
3、专利cn117714626a公开了一种基于fpga的高分辨率彩色图像叠加系统及方法,dsp用于产生每帧图像的叠加控制指令信息和字符叠加内容信息;fpga用于接收视频数据并根据dsp产生的叠加控制指令信息和字符叠加内容信息,在原始图像上实现图形叠加和字符叠加;外部视频产生模块用于产生原始图像;sdi高清显示器用于将叠加后的图像进行显示;ddr存储器用于将fpga接收的图像进行帧缓存,但是图像使能控制复杂,且实现的图像叠加是在平面分布上的叠加,没有重叠部分。
4、综上所述,需要一种基于fpga的查表扫描式图像叠加系统及方法来解决现有技术中所存在的不足之处。
技术实现思路
1、针对现有技术的不足,本发明提供了一种基于fpga的查表扫描式图像叠加系统及方法,旨在解决上述问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于fpga的查表扫描式图像叠加系统,包括初始化配置模块、读取模块、按位与模块、判断计算模块和叠加逻辑模块,
3、初始化配置模块,用于初始化ram_row存储器和ram_column存储器,并将子图像行叠加位置信息表配置给ram_row存储器,将子图像列叠加位置信息表配置给ram_column存储器,
4、读取模块,用于根据读地址从ram_row存储器中读取第x个深度的数据为参数ax和ram_column存储器中读取第y个深度的数据为参数by,
5、按位与模块,用于将参数ax和参数by按位与,得到一个新的参数c,
6、判断计算模块,用于通过新参数c判断总图形的像素点[x,y]参与叠加的子图像,并依次计算得到每个像素点的值,
7、叠加逻辑模块,用于根据读取的叠加信息执行图像叠加操作。
8、一种基于fpga的查表扫描式图像叠加方法,包括以下步骤:
9、步骤s1:初始化ram_row存储器和ram_column存储器,并将子图像行叠加位置信息表配置给ram_row存储器,将子图像列叠加位置信息表配置给ram_column存储器;
10、步骤s2:根据读地址从ram_row存储器中读取第x个深度的数据为参数ax和ram_column存储器中读取第y个深度的数据为参数by;
11、步骤s3:将参数ax和参数by按位与,得到一个新的参数c;
12、步骤s4:根据新参数c,计算当前位置像素点的值;
13、步骤s5:判断ram_column存储器当前的读地址是否小于总图像列数x减1,若是,则将ram_column存储器当前的读地址加1,ram_row存储器当前的读地址不变,并返回步骤s2,若否,则判断ram_row存储器当前的读地址是否小于总图像行数y减1;
14、步骤s6:若ram_row存储器当前的读地址小于总图像行数y减1,则将ram_column存储器当前的读地址置0,ram_row存储器当前的读地址加1,并返回步骤s2,反之,则完成一帧图像的叠加;
15、步骤s7:叠加下一帧图形,并将两个ram的读地址都置0,进入步骤s2。
16、可选的,所述步骤s1中ram_row存储器的位宽为子图像的数量,深度为总图像的行数,行叠加位置信息表记录的是总图像每行子图像参与叠加的信息,其行数等于总图像的行数即纵向像素点个数,且一一对应,行叠加位置信息表的列数等于子图像的幅数,且一一对应。
17、可选的,所述行叠加位置信息表中每幅子图像对应行叠加位置信息表的一列数据,若其参与总图像某行图像叠加,则在表格中对应的行数置1,反之则置0。
18、可选的,所述步骤s1中ram_column存储器的位宽为子图像的数量,深度为总图像的列数,列叠加位置信息表记录的是总图像每列子图像参与叠加的信息,其行数等于总图像的列数即横向像素点个数,且一一对应,列叠加位置信息表的列数等于子图像的幅数,且一一对应。
19、可选的,所述列叠加位置信息表中每幅子图像对应列叠加位置信息表的一列数据,若其参与总图像某列图像叠加,则在表格中对应的行数置1,反之则置0。
20、可选的,所述步骤s4通过以下方式计算:
21、通过新参数c判断总图形的像素点[x,y]参与叠加的子图像,并依次计算得到每个像素点的值。
22、可选的,所述新参数c判断为:
23、若参数c的对应bit位为1,则将对应子图像的像素点从存储设备中取出,若参数c的对应bit位为0,则不做任何操作。
24、可选的,所述计算像素点的值为:
25、将取出的子图像像素点值乘以对应的权重再相加得到总图像该位置像素点的值,存入相应的存储设备中。
26、本发明的有益效果:
27、本发明中,fpga作为可编程逻辑器件,具有灵活性高、运行速度快、并行处理能力强、低延迟、高可靠性、支持多种接口等优点;
28、本发明中,将多幅、任意位置的子图像叠加为一幅图像输出的实现,毫米波人体安检仪成像中,因为采集模组较多,需要将多幅错位子图像叠加成一幅图像输出;
29、本发明中,通过行、列叠加信息表的组合判断确定总图像所有像素点的叠加信息,实现多幅图像、任意位置的图像叠加,通过上位机对ram中的行、列叠加信息表进行更新,从而改变要叠加的子图像的相对位置和大小。
1.一种基于fpga的查表扫描式图像叠加系统,其特征在于,包括初始化配置模块、读取模块、按位与模块、判断计算模块和叠加逻辑模块,
2.一种基于fpga的查表扫描式图像叠加方法,其特征在于,包括以下步骤:
3.根据权利要求2所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述步骤s1中ram_row存储器的位宽为子图像的数量,深度为总图像的行数,行叠加位置信息表记录的是总图像每行子图像参与叠加的信息,其行数等于总图像的行数即纵向像素点个数,且一一对应,行叠加位置信息表的列数等于子图像的幅数,且一一对应。
4.根据权利要求3所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述行叠加位置信息表中每幅子图像对应行叠加位置信息表的一列数据,若其参与总图像某行图像叠加,则在表格中对应的行数置1,反之则置0。
5.根据权利要求2所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述步骤s1中ram_column存储器的位宽为子图像的数量,深度为总图像的列数,列叠加位置信息表记录的是总图像每列子图像参与叠加的信息,其行数等于总图像的列数即横向像素点个数,且一一对应,列叠加位置信息表的列数等于子图像的幅数,且一一对应。
6.根据权利要求5所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述列叠加位置信息表中每幅子图像对应列叠加位置信息表的一列数据,若其参与总图像某列图像叠加,则在表格中对应的行数置1,反之则置0。
7.根据权利要求2所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述步骤s4通过以下方式计算:
8.根据权利要求7所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述新参数c判断为:
9.根据权利要求7所述基于fpga的查表扫描式图像叠加方法,其特征在于,所述计算像素点的值为:
