本公开涉及图像处理,尤其涉及一种基于fpga语言的快速去紫边算法、装置和控制系统及工业显微镜。
背景技术:
1、紫边现象是指数码相机在拍摄取过程中,由于被摄物体反差较大,在高光与低光部位交界处出现的色斑的现象。通常来说,紫边出现的原因与相机镜头的色散、ccd成像面积过小(成像单元密度大)、相机内部的信号处理算法等有关。
2、而要克服这类问题,ccd/cmos面积较大的单反相机加上含有低色散镜片的镜头,就起到很大的作用了。但这样一来整体相机成本就会增加非常多,且不能完全解决图像紫边问题。这就就需要配合一些修正紫边的算法用于去除。
3、目前现有技术下,去除紫边的方法通常是先进行紫边区域检测、然后消除紫边,降低紫边饱和度或者蓝色分量来消除紫边。但是会消耗大量资源用于检索紫边区域,这些算法通常适用于资源比较大的器件使用。针对低成本相机,在特定使用环境中,急需基于fpga语言的快速去紫边算法占用资源少,简单的去紫边算法用于来解决资源不够,但是又想去除紫边的算法。
技术实现思路
1、为了解决上述问题,本申请提出基于fpga语言的快速去紫边算法、装置和控制系统及工业显微镜。
2、本申请一方面,提出一种基于fpga语言的快速去紫边算法,包括如下步骤:
3、获取原始数据像素点;
4、计算所述原始数据像素点中蓝值的最小值bmin;
5、计算当前值对应的绿值最大值gmax,以及当前值对应的红值r;
6、判断当前值是否同时大于所述绿值最大值gmax以及红值r:若同时满足,则判定当前值为蓝色,为需要去掉的紫边,将当前值替换为bmin。
7、作为本申请的一可选实施方案,可选地,获取原始数据像素点之后,还包括:
8、按照预设的阵列条件,获取呈阵列布置的原始数据像素点,得到像素矩阵;
9、输出并保存所述像素矩阵。
10、作为本申请的一可选实施方案,可选地,计算所述原始数据像素点中蓝值的最小值bmin,包括:
11、设定计算范围;
12、从所述像素矩阵中,根据计算范围划分出计算矩阵,并划分得到中心点为蓝值的计算阵列nxn;
13、计算并得到所述计算阵列nxn中所有蓝值中的最小值bmin。
14、作为本申请的一可选实施方案,可选地,计算当前值对应的绿值最大值gmax,包括:
15、计算并得到当前值对应的绿值g1;
16、计算并得到当前值周围mxm范围内的若干绿值g2;其中,m<n;
17、从绿值g1和若干绿值g2中,计算并得到绿值最大值gmax。
18、作为本申请的一可选实施方案,可选地,计算当前值对应的红值r,包括:
19、计算并得到当前值对应的红值r1;
20、计算并得到当前值周围mxm范围内的若干红值r2;
21、从红值r1和若干红值r2中,计算并得到其中的最大值作为红值r。
22、作为本申请的一可选实施方案,可选地,计算当前值对应的红值r,包括:
23、计算并得到当前值周围mxm范围内的若干红值r2;
24、计算并得到若干红值r2的平均值,作为红值r。
25、作为本申请的一可选实施方案,可选地,判断当前值是否同时大于所述绿值最大值gmax以及红值r时,还包括:
26、若不满足:当前值是否同时大于所述绿值最大值gmax以及红值r,则结束;
27、循环检查紫边待检测区域。
28、本申请另一方面,提出一种实现所述基于fpga语言的快速去紫边算法的装置,包括:
29、像素获取模块,用于获取原始数据像素点;
30、蓝值计算模块,用于计算所述原始数据像素点中蓝值的最小值bmin;
31、判断值计算模块,用于计算当前值对应的绿值最大值gmax,以及当前值对应的红值r;
32、判断模块,用于判断当前值是否同时大于所述绿值最大值gmax以及红值r:若同时满足,则判定当前值为蓝色,为需要去掉的紫边,将当前值替换为bmin。
33、本申请另一方面,还提出一种控制系统,包括:
34、处理器;
35、用于存储处理器可执行指令的存储器;
36、其中,所述处理器被配置为执行所述可执行指令时实现所述的基于fpga语言的快速去紫边算法。
37、本申请另一方面,还提出一种工业显微镜,所述工业显微镜采用上述所述基于fpga语言的快速去紫边算法进行图像去紫边处理。
38、本发明的技术效果:
39、本申请通过获取原始数据像素点;计算所述原始数据像素点中蓝值的最小值bmin;计算当前值对应的绿值最大值gmax,以及当前值对应的红值r;判断当前值是否同时大于所述绿值最大值gmax以及红值r:若同时满足,则判定当前值为蓝色,为需要去掉的紫边,将当前值替换为bmin。采用去除紫边的算法,通过检测图像边缘部分级周边若干行像素等范围内是否为紫色晕染边,然后再根据周围实际边缘进行修复,该算法针对fpga语言需要缓存10行以上数据并大量计算边界(ram块)以及大量逻辑资源进行复杂计算才可以得到。能够用于降低当前蓝值,起到降低蓝紫边的功能。这里不需要过大资源,也不需要进行复杂的边缘计算。
40、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
1.基于fpga语言的快速去紫边算法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于fpga语言的快速去紫边算法,其特征在于,获取原始数据像素点之后,还包括:
3.根据权利要求2所述的基于fpga语言的快速去紫边算法,其特征在于,计算所述原始数据像素点中蓝值的最小值bmin,包括:
4.根据权利要求3所述的基于fpga语言的快速去紫边算法,其特征在于,计算当前值对应的绿值最大值gmax,包括:
5.根据权利要求1所述的基于fpga语言的快速去紫边算法,其特征在于,计算当前值对应的红值r,包括:
6.根据权利要求1所述的基于fpga语言的快速去紫边算法,其特征在于,计算当前值对应的红值r,包括:
7.根据权利要求1所述的基于fpga语言的快速去紫边算法,其特征在于,判断当前值是否同时大于所述绿值最大值gmax以及红值r时,还包括:
8.实现权利要求1-7中任一项所述基于fpga语言的快速去紫边算法的装置,其特征在于,包括:
9.控制系统,其特征在于,包括: