CN104113674B - 基于fpga的线阵ccd成像系统的图像实时校正输出方法 - Google Patents
基于fpga的线阵ccd成像系统的图像实时校正输出方法 Download PDFInfo
- Publication number
- CN104113674B CN104113674B CN201410325157.1A CN201410325157A CN104113674B CN 104113674 B CN104113674 B CN 104113674B CN 201410325157 A CN201410325157 A CN 201410325157A CN 104113674 B CN104113674 B CN 104113674B
- Authority
- CN
- China
- Prior art keywords
- fpga
- main control
- ccd
- fpga main
- control chips
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
本发明公开基于FPGA的线阵CCD成像系统的图像实时校正输出方法,包括:(1)PC主机向FPGA主控芯片发送扫描指令;(2)FPGA主控芯片控制CCD传感器点亮,并控制CCD传动模块控制CCD传感器采集图像;同时,FPGA主控芯片中的算法模块分别计算出两个校正参数α和β:(3)CCD传感器采集图像数据,并将其传输至模数转换器,模数转换器将模拟信号转换成数字信号,并传输到FPGA主控芯片中的算法模块进行处理;(4)算法模块计算出所有光敏单元校正后的灰度值;(5)FPGA主控芯片将各个光敏单元各自校正后的灰度值传输至PC主机进行处理,形成完整的图像后显示。本发明设计合理,处理速度快、成像精度高。
Description
技术领域
本发明涉及一种图像输出方法,具体涉及的是一种基于FPGA的线阵CCD成像系统的图像实时校正输出方法。
背景技术
CCD(Charge Coupled Device)图像传感器成像方案在光电检测和图像采集中得到了广泛的应用。由于CCD光敏元件的生产工艺导致响应度不一致,会使得扫描图像灰度值产生非均匀变化,严重影响图像的采集质量。即便生产工艺的影响可以忽略,光照的不均匀也会对扫描的图片产生影响,所以非常有必要对扫描图像的灰度进行校正。现有的已经提出的方法中主要有基于上位机软件来实现校正,如有些学者提出了射线数字成像检测系统不均匀性分析与校正和多路CCD成像非一致性动态校正方法进行校正,但是这些方案的运算量较大,校正耗时较长,影响了整个系统的实时性。也有使用硬件方式来实现校正的,比如FPGA+DSP的方案,但是这种方案会使系统结构过于复杂。所以现在使用最多的方法是使用现场可编程门阵列(FPGA)来完成图像的校正。
然而,在现有的线阵CCD光电设备中,如:线阵CCD相机和多CCD拼接大幅面扫描仪等,多采用扫描频率为2000行每秒的CCD器件,在大幅面采集系统中,如一张12720×5297幅面的图片,用现有的方法实现校正耗时平均值约50ms,这样的延时不能满足系统的要求。而在连续采图过程中如果图片的校正耗时过长,会导致整个系统的实时性降低。虽然CCD的性能指标可以达到很高,但是一个系统的性能是由耗时最多的模块所决定的,以多CCD大幅面扫描仪为例,虽然使用了扫描频率为2000行每秒的CCD,同时配合DDR2(Double DataRate2)高速缓存来传输图像,但是图片校正耗时是提升系统的瓶颈,限制着系统整体指标的提高,而且当图片的尺寸变大之后,上面的问题会越来越突出。不仅是图像扫描设备中存在上述的问题,在自动化在线检测系统中,如PCB(Printed Circuit Board)自动外观检查机等,对速度要求很高的场合也是不能接受软件校正所带入的耗时的。
综上所述,有必要对现有的硬件校正方法进行改进,使得输出的图像质量满足要求。
发明内容
本发明的目的在于提供一种基于FPGA的线阵CCD成像系统的图像实时校正输出方法,主要解决现有的CCD成像系统由于校正方案不佳而导致其不能快速、高精度地输出图像的问题。
为了实现上述目的,本发明采用的技术方案如下:
基于FPGA的线阵CCD成像系统的图像实时校正输出方法,其特征在于,包括以下步骤:
(1)系统上电后,PC主机向FPGA主控芯片发送扫描指令;
(2)FPGA主控芯片接收指令后产生时钟信号和控制信号,并控制CCD传感器点亮,并控制CCD传动模块按照PC主机要求的扫描模式控制CCD传感器对扫描对象进行图像采集;同时,FPGA主控芯片中的算法模块将纯白和纯黑两种颜色作为标定点,并按照如下公式分别计算出两个校正参数α和β:
α+β=m×256 (2)
其中,W表示扫描纯白色图片的灰度值,其值为220,B表示纯黑色图片的灰度值,其值为15,m表示一个小数点后保留三位的纯小数;α为所得数据的整数部分,β为所得数据的小数部分;
(3)CCD传感器采集扫描对象的图像数据,并将该图像数据传输至模数转换器,模数转换器在FPGA主控芯片提供的转换时钟信号下,将CCD传感器输出的模拟信号转换成数字信号,并传输到FPGA主控芯片中的算法模块进行处理;
(4)算法模块对第一个光敏单元采用如下公式计算其校正后的灰度值A1:
其中,X表示CCD传感器实际采集的第一个光敏单元的灰度值;
(5)重复步骤(4),直至算法模块将剩余的光敏单元校正后的灰度值A全部算出;
(6)FPGA主控芯片将各个光敏单元各自校正后的灰度值A传输至PC主机进行处理,得到完整的图像,然后将图像显示。
作为优选,所述FPGA主控芯片的型号为Cyclone IV。
进一步地,所述步骤(2)中,所述m表示一个小数点后保留四位的纯小数。
再进一步地,所述步骤(2)中,计算得到两个校正参数α和β后,FPGA主控芯片将二者存储到与其连接的flash存储器中,在以后校正图像数据时,直接从该flash存储器中将两个参数α和β读入到FPGA主控芯片内部的随机存取存储器中,并在传输图像数据的同时将两个校正参数α和β输入到算法模块中。
本发明的设计原理在于,CCD的非均匀性主要表现在均匀辐射输入时CCD的不同光敏单元的输出不同,这种不一致性又称作光电响应的非均匀性。这种特性是CCD的生产工艺导致的,所以必须在传输过程中采用图像数据校正的方法解决。
两点校正法是最早开展研究的方法之一,也是最为成熟的算法之一,分为标定和校正两个步骤。它有两个前提假设:(1)CCD的光敏单元的响应是线性的。这一假设在CCD响应的中间大部分区域是成立的,只有在输入较小和接近饱和时才有比较大的非线性;(2)CCD的响应必须具有时间上的稳定性。两点定标校正法对具有线性响应的CCD具有很好的校正效果,且易于硬件实现和实时校正。本发明使用纯白和纯黑两种颜色作为标定点,得到线性校正公式(1),其中W表示扫描纯白色图片的灰度值,B表示纯黑色图片的灰度值,W和B的理论值分别是255和0,但是对W求平均值为220,对B求平均值为15。由于这两种情况下,CCD的输出均在模数转换器的线性范围中,所以需要对传输图像进行校正,x表示实际CCD实际采集的光敏单元的灰度值,A表示校正后的灰度。由于每个光敏单元的响应特性都存在差异,所以每个光敏单元都需要进行校正,测试并记录每个光敏单元的校正参系数W和B。
针对上述公式,本发明在结合FPAG的特性后,可以在很大程度上提高了系统的实时性能,同时也保证了非常好的校正效果。正常的CCD器件可以确保即灰度变化范围超过器件的整个线性范围的一半,将表示为1+m,m是一个小数点后保留三位的纯小数,因此,校正公式可表示为:
A=(1+m)×x-(1+m)×B (2)
而由于FPGA中不能直接存储小数,所以公式(2)中计算出的校正系数不能直接使用。因此,本发明对公式(2)做了如下的变换,如公式(3)所示,先将纯小数部分m乘以28,这是考虑到FPGA中最快的处理方式是移位,因此乘28相当于是左移8位,把小数部分提取出来做后续的运算,并且保留(1+m)×x×28结果的整数部分。
因为m是纯小数,所以m×256的结果会出现小数部分,用α+β=m×256表示,得到A的新的表达式(4),其中α表示数据的整数部分,β表示数据的小数部分。
如此一来,根据计算得到的校正后的灰度值A,即可应用到FPGA主控芯片中进行图像数据的校正处理,然后传输到PC主机中进行处理后输出图像。
与现有技术相比,本发明具有以下有益效果:
(1)本发明设计巧妙,原理简单,扫描成像效果佳。
(2)本发明通过结合FPGA的特性,设计了全新的校正方案,降低了算法对FPGA芯片的性能的依赖性,大幅改进了传统的硬件校正方案,并将其应用到CCD图像输出方面,本发明将现有的需要多个时钟周期完成校正的方法改进为只需要1个时钟就能输出数据,并且还通过m值的设计和选取,很大程度上减小了校正误差,使其误差降低至0.5个DN(digitalnumber)以内,并且经试验表明,校正后图像的明暗对比度与图片细节均明显优于校正前。本发明通过软硬件的有效结合,很好地解决了现有技术存在的问题,图片了现有技术的限制,并实现了重大的创新,因此,本发明与现有技术相比,具有突出的实质性特点和显著的进步。
(3)本发明实时性好、效率高、可靠性强,能够很好地满足实际工程需求,因此,其具有广泛的应用前景,适于大规模推广应用。
附图说明
图1为实现本发明所需用到的硬件结构示意图。
图2为本发明的流程示意图。
图3为本发明-实施例扫描实物且未校正时输出的图像示意图。
图4为本发明-实施例扫描实物且校正后输出的图像示意图。
图5为本发明-实施例扫描PCB电路板且未校正时输出的图像示意图。
图6为图5中区域1校正前第10行的灰度值分布示意图。
图7为图5中区域2校正前第10行的灰度值分布示意图。
图8为图5中区域1校正后第10行的灰度值分布示意图。
图9为图5中区域2校正后第10行的灰度值分布示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
如图1所示,本发明主要应用于基于FPGA的线阵CCD成像系统方面,其硬件方面,主要由内设有算法模块(即硬件乘法器)和随机存取存储器(即RAM)的FPGA主控芯片,输出端与该FPGA主控芯片输入端连接的模数转换器,与该FPGA主控芯片输出端连接的CCD传动模块,均与该FPGA主控芯片双向连接的flash存储器和PC主机,以及输出端与模数转换器输入端连接并且还与CCD传动模块连接的CCD传感器组成。
而基于上述硬件结构,如图2所示,本发明的实现流程如下:
(1)系统上电后,PC主机向FPGA主控芯片发送扫描指令;
(2)FPGA主控芯片接收指令后产生时钟信号和控制信号,并控制CCD传感器点亮,并控制CCD传动模块按照PC主机要求的扫描模式控制CCD传感器对扫描对象进行图像采集;同时,FPGA主控芯片中的算法模块将纯白和纯黑两种颜色作为标定点,并按照如下公式分别计算出两个校正参数α和β:
α+β=m×256 (2)
其中,W表示扫描纯白色图片的灰度值,其值为220,B表示纯黑色图片的灰度值,其值为15,m表示一个小数点后保留三位的纯小数;α为所得数据的整数部分,β为所得数据的小数部分;
(3)CCD传感器采集扫描对象的图像数据,并将该图像数据传输至模数转换器,模数转换器在FPGA主控芯片提供的转换时钟信号下,将CCD传感器输出的模拟信号转换成数字信号,并传输到FPGA主控芯片中的算法模块进行处理;
(4)算法模块对第一个光敏单元采用如下公式计算其校正后的灰度值A1:
其中,X表示CCD传感器实际采集的第一个光敏单元的灰度值;
(5)重复步骤(4),直至算法模块将剩余的光敏单元校正后的灰度值A全部被算出;
(6)FPGA主控芯片将各个光敏单元各自校正后的灰度值A传输至PC主机进行处理,得到完整的图像,然后将图像显示。
本发明中,FPGA主控芯片的型号优选为Cyclone IV,该种型号的FPGA主控芯片内部拥有3.9Mbit的RAM,足够实现数据的缓冲,并且266个硬件乘法器也可以很好地满足本发明设计的校正算法,其可以一个时钟就能够完成校正。
此外,步骤(2)中,m表示一个小数点后保留三位的纯小数,其得到灰度误差DN(用ΔA表示)已经相当小,而为了进一步减小灰度误差,作为优选,m表示一个小数点后保留四位的纯小数。如此设计的原因在于,通过设计之后,得出公式:
而由该公式可知,因为x-B<255,所以又因为β是小数,所以ΔA小于1,再由于α是根据m计算得到的,所以在计算m时多保留一位小数可以将误差减少为原本误差的一半,在计算校正系数时m保留四位小数之后可以使得计算结果的误差在0.5个DN以内。
另外,计算得到两个校正参数α和β后,FPGA主控芯片将二者存储到与其连接的flash存储器中,在以后校正图像数据时,直接从该flash存储器中将两个参数α和β读入到FPGA主控芯片内部的随机存取存储器中,并在传输图像数据的同时将两个校正参数α和β输入到算法模块中。由于整个过程中校正和传输是同时进行的,所以速度非常快,达到了实时性的要求。同时为了让数据能够达到完全流水线输出,也就是要确保算法执行时间小于图像的传输时间,FPGA中的运算都采用了多级流水线,保证每个时钟周期完成一次运算。
为突出本发明良好的应用效果,本实施例以两个实例来进行解释说明。
实例一
本实例应用在大幅面扫描成像方面,如图3、4所示,图3是未进行校正的示意图,图4为校正之后的示意图。从图3中可以看出,在进行校正之前由于每个像素点的灰度值相对于真实值都存在偏移,而且偏移的程度不一样,所以扫描的图片可以很明显看到分布存在色代,每个CCD传感器的扫描所得图片在拼接处均可看到明显的缝隙,像素之间的有些细节由于对比不明显影响观察,严重影响图像的解译。而经过校正之后灰度则被重新拉伸到正常范围,基本去除了色带,图片质量明显提高,更加真实地反映了图像的属性,细节更加清晰。
实例二
如图5~9所示,在PCB外观检查机中,CCD传感器采集的PCB电路板的图片如图5所示,其中标注的1和2是两块相同的金属区域。由于校正前图片灰度分布不均匀,区域1和2的同一行的灰度分布曲线也会存在较大偏差。图6是校正前区域1的第10行灰度值分布示意图,图7是校正前区域2的第10行灰度值分布示意图,可以看出,校正前区域1第10行的灰度值分布在35~42之间,其平均值为38,区域2第10行的灰度值分布在50~65之间,其平均值为57,两者相差9个灰度值左右。由于正常情况下两块相同材质的金属灰度分布应该趋于一致,因此,校正后两区域的灰度分布如图8、9所示,灰度分布约都在50~60之间,基本消除了片内灰度不均的影响,因此,其在满足外观检查机实时性要求的同时,也为后续的检测提供满足要求的图片。
本发明在提供一般灰度校正方法的同时根据FPGA的具体特性,对校正公式进行了优化,达到了1个时钟周期完成校正算法的目的,其在具体工程应用中不会对系统的实时性产生影响,并且还将校正算法在CCD成像控制FPGA中进行了具体实现。因此,本发明相比现有技术来说,技术进步十分明显。
上述实施例仅为本发明较佳的实现方式之一,不应当用以限制本发明的保护范围,凡在本发明的主体设计思想和精神下所作出的任何毫无实质意义的改动或润色的技术方案,均应当在本发明的保护范围内。
Claims (4)
1.基于FPGA的线阵CCD成像系统的图像实时校正输出方法,其特征在于,包括以下步骤:
(1)系统上电后,PC主机向FPGA主控芯片发送扫描指令;
(2)FPGA主控芯片接收指令后产生时钟信号和控制信号,并控制CCD传感器点亮,并控制CCD传动模块按照PC主机要求的扫描模式控制CCD传感器对扫描对象进行图像采集;同时,FPGA主控芯片中的算法模块将纯白和纯黑两种颜色作为标定点,并按照如下公式分别计算出两个校正参数α和β:
α+β=m×256 (2)
其中,W表示扫描纯白色图片的灰度值,其值为220,B表示纯黑色图片的灰度值,其值为15,m表示一个小数点后保留三位的纯小数;α为所得数据的整数部分,β为所得数据的小数部分;
(3)CCD传感器采集扫描对象的图像数据,并将该图像数据传输至模数转换器,模数转换器在FPGA主控芯片提供的转换时钟信号下,将CCD传感器输出的模拟信号转换成数字信号,并传输到FPGA主控芯片中的算法模块进行处理;
(4)算法模块对第一个光敏单元采用如下公式计算其校正后的灰度值A1:
其中,X表示CCD传感器实际采集的第一个光敏单元的灰度值;
(5)重复步骤(4),直至算法模块将剩余的光敏单元校正后的灰度值A全部算出;
(6)FPGA主控芯片将各个光敏单元各自校正后的灰度值A传输至PC主机进行处理,得到完整的图像,然后将图像显示。
2.根据权利要求1所述的基于FPGA的线阵CCD成像系统的图像实时校正输出方法,其特征在于,所述FPGA主控芯片的型号为Cyclone IV。
3.根据权利要求1或2所述的基于FPGA的线阵CCD成像系统的图像实时校正输出方法,其特征在于,所述步骤(2)中,所述m表示一个小数点后保留四位的纯小数。
4.根据权利要求3所述的基于FPGA的线阵CCD成像系统的图像实时校正输出方法,其特征在于,所述步骤(2)中,计算得到两个校正参数α和β后,FPGA主控芯片将二者存储到与其连接的flash存储器中,在以后校正图像数据时,直接从该flash存储器中将两个参数α和β读入到FPGA主控芯片内部的随机存取存储器中,并在传输图像数据的同时将两个校正参数α和β输入到算法模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410325157.1A CN104113674B (zh) | 2014-07-09 | 2014-07-09 | 基于fpga的线阵ccd成像系统的图像实时校正输出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410325157.1A CN104113674B (zh) | 2014-07-09 | 2014-07-09 | 基于fpga的线阵ccd成像系统的图像实时校正输出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104113674A CN104113674A (zh) | 2014-10-22 |
CN104113674B true CN104113674B (zh) | 2017-05-24 |
Family
ID=51710300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410325157.1A Active CN104113674B (zh) | 2014-07-09 | 2014-07-09 | 基于fpga的线阵ccd成像系统的图像实时校正输出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104113674B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104296661B (zh) | 2014-10-31 | 2017-04-05 | 中国科学院长春光学精密机械与物理研究所 | 绝对式光栅尺绝对信号一致性校正方法 |
CN104735369B (zh) * | 2015-03-25 | 2017-11-28 | 北京空间机电研究所 | 一种航天超大面阵ccd视频信号实时处理方法 |
CN106027924B (zh) * | 2016-05-11 | 2018-10-23 | 吉林大学 | 高性能cmos图像传感器阵列模数转换器的数字校正方法 |
CN108600570A (zh) * | 2018-05-17 | 2018-09-28 | 常州信息职业技术学院 | 一种接触式图像传感器非均匀性校正系统及其校正方法 |
CN109151459A (zh) * | 2018-09-11 | 2019-01-04 | 杭州电子科技大学 | 基于fpga的线阵ccd波形校正方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163192A (zh) * | 2006-10-09 | 2008-04-16 | 东捷科技股份有限公司 | 彩色ccd相机色彩校正方法 |
CN102300057A (zh) * | 2011-06-14 | 2011-12-28 | 北京空间机电研究所 | 线阵ccd像元响应不一致性校正方法 |
CN103646381A (zh) * | 2013-11-22 | 2014-03-19 | 西安理工大学 | 一种线阵ccd的行进畸变校正方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4486876B2 (ja) * | 2004-12-15 | 2010-06-23 | シャープ株式会社 | 多分割読出ccd補正処理装置および方法 |
-
2014
- 2014-07-09 CN CN201410325157.1A patent/CN104113674B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163192A (zh) * | 2006-10-09 | 2008-04-16 | 东捷科技股份有限公司 | 彩色ccd相机色彩校正方法 |
CN102300057A (zh) * | 2011-06-14 | 2011-12-28 | 北京空间机电研究所 | 线阵ccd像元响应不一致性校正方法 |
CN103646381A (zh) * | 2013-11-22 | 2014-03-19 | 西安理工大学 | 一种线阵ccd的行进畸变校正方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104113674A (zh) | 2014-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104113674B (zh) | 基于fpga的线阵ccd成像系统的图像实时校正输出方法 | |
US11388339B2 (en) | Anti-shake method for panoramic video, and portable terminal | |
CN101305599B (zh) | 外围光量校正设备、外围光量校正方法、电子信息装置 | |
CN102929572B (zh) | 一种实现大屏幕多投影无缝拼接的方法及其拼接融合器 | |
CN103379288A (zh) | 图像处理设备、图像处理方法和程序 | |
CN104113675A (zh) | 一种宽幅扫描仪的图像实时校正输出方法 | |
CN103969269A (zh) | 用于几何校准ct扫描仪的方法和装置 | |
CN103528690A (zh) | 一种红外热像仪的非均匀校正方法 | |
CN101635782B (zh) | 一种基于动态时间延迟积分的图像获取方法及器件 | |
CN102509304A (zh) | 基于智能优化的摄像机标定方法 | |
CN107071234A (zh) | 一种镜头阴影校正方法及装置 | |
CN102607446A (zh) | 基于网格测量钢结构焊接变形的方法 | |
CN102740008A (zh) | 一种空间相机在轨辐射响应非均匀性校正方法 | |
CN105160657A (zh) | 基于fpga的红外成像非均匀性校正系统 | |
CN108917640A (zh) | 一种激光盲孔深度检测方法及其系统 | |
CN110686783A (zh) | 一种InGaAs短波红外成像仪的盲元检测方法及图像处理方法 | |
CN103297654A (zh) | 基于多cis大幅面扫描仪的图像校正方法 | |
CN103778637A (zh) | 一种基于直方图平衡的side-slither辐射定标处理方法 | |
CN106791803B (zh) | 一种扰动测量成像系统 | |
CN101420520A (zh) | 一种多摄像机阵列的联合标定方法 | |
CN103020622A (zh) | 线阵光学降水降雪测量系统中图像二值化方法 | |
CN107991675B (zh) | 一种用于辐射计成像的内外定标方法 | |
CN102905077B (zh) | 一种图像暗角亮度调节方法及装置 | |
CN114001674B (zh) | 一种自由视角下的线束弯曲半径机器视觉测量方法 | |
CN105321152A (zh) | 一种图像拼接方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220421 Address after: 644000 No. 7, floor 1, building 72, Jinrun Industrial Park, Gaochang Town, Xuzhou District, Yibin City, Sichuan Province Patentee after: Yibin Micro Intelligent Technology Co.,Ltd. Address before: 315000 Xinxing Industrial Park, Shounan Street, Yinzhou District, Ningbo City, Zhejiang Province Patentee before: NINGBO MOSHI OPTOELECTRONICS TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |