一种基于CUDA加速的显微图像枕形畸变快速矫正方法

未命名 09-13 阅读:111 评论:0

一种基于cuda加速的显微图像枕形畸变快速矫正方法
技术领域
1.本发明属于数字图像处理处理领域,特别涉及一种基于cuda加速的显微图像枕形畸变快速矫正方法。


背景技术:

2.显微镜检查是现代医学检查中不可缺少的一部分,近年来随着技术的发展,全自动镜检机越来越多地代替传统人工显微镜检查在各个医院、研究所中被广泛使用。在传统人工显微镜检查中,医生控制显微镜,观察连续视野中病理切片的状态,做出诊断。在全自动镜检机中,显微摄像机自动拍摄显微图像代替医生手动移动显微镜视野,大大提高了医生工作效率。受放大倍数限制,显微摄像头拍摄的范围较小,无法观察整个病理切片的状况,这就要求对连续的病理显微图像进行拼接,扩大视野。因光学镜头固有特性,ccd摄像头所拍摄的显微图像存在畸变,特别是在视野边缘处,图像会发生明显弯曲,这种畸变对单幅数字显微图像的影响可以忽略,但将多幅拼接起来以获得更大的视野时,待拼接图像在畸变影响下无法完全匹配,会在拼接处产生明显缝隙,严重影响拼接效果。因而想获得高质量的大视野拼接图像,对单幅显微图像先进行畸变矫正的预处理显得尤为重要。
3.现有畸变矫正算法大多用于普通相机,可以拍摄不同角度的图像从而得到相机畸变参数,显微相机放大倍数高、拍摄视野小、拍摄角度不能变化,无法使用传统方法。同时,现存畸变矫正算法速度较慢,不能满足显微图像实际应用中的快速矫正需求。


技术实现要素:

4.本发明的目的是针对现有技术的不足而提供的一种基于cuda加速的显微图像枕形畸变快速矫正方法,该方法针对显微摄像机的限制和应用场景,实现了对显微图像畸变的快速矫正。
5.实现本发明目的的具体技术方案是:
6.一种基于cuda加速的显微图像枕形畸变快速矫正方法,该方法包括以下步骤:
7.步骤1:读入使用显微摄像头拍摄的正方形网格图像,使用图像算法提取网格轮廓,计算畸变前后网格中心点坐标映射关系;
8.步骤2:计算图像枕形畸变参数,同时对图像分块,计算各区域内透视变换系数;
9.步骤3:读入待处理显微图像,上传至图形处理器gpu(graphics processing unit),用于使用并行计算cuda(compute unified device architecture)加速;步骤4:根据枕形畸变矫正公式,计算当前位置畸变后坐标(x
g1
,y
g1
),根据透视变换公式,计算当前位置畸变后坐标(x
g2
,y
g2
),对两个畸变后坐标加权平均得到最终畸变后坐标;
10.步骤5:使用双三次插值获取畸变后坐标像素值,放置于当前位置,完成图像畸变矫正。
11.步骤1所述使用图像算法提取网格轮廓,计算畸变前后网格中心点坐标映射关系,具体包括以下步骤:
12.步骤1.1:读入使用显微摄像头拍摄的正方形网格图像,做白平衡处理并转化为灰度图像;
13.步骤1.2:使用otsu算法对灰度图像进行阈值分割,并对分割后二值图像提取轮廓;
14.步骤1.3:对提取出的轮廓,求出所有轮廓大小的平均值,根据轮廓面积对轮廓进行筛选,求得轮廓平均大小,去除面积小于轮廓面积平均值1/3的轮廓;
15.步骤1.4:对余下的轮廓使用形态学处理算法,得到形状标准的网格轮廓;
16.步骤1.5:对每个轮廓求取中心点,得到网格的中心点坐标,此时为发生畸变后坐标;
17.步骤1.6:根据位置筛选出图像中心5*5网格的中心点坐标,根据摄像机镜头畸变特点,认定该区域未发生畸变,以区域网格中心点间距离作为标准距离、图像最中心网格中心点为起点,根据起点坐标和网格位置计算其它网格中心点畸变前坐标。
18.所述步骤2,具体为:
19.步骤2.1:建立枕形畸变矫正公式,代入畸变前后对应坐标,求得畸变矫正参数k1、k2和k3并保存;
20.步骤2.2:选取5*5网格中心网格的中心点作为标准网格的起点,以标准距离为宽度,将图像划分为若干标准正方形区域;
21.步骤2.3:依次处理图像划分出的正方形区域,在一个正方形区域内涉及临近2*2网格,共包含4个网格中心点,为防止透射变换后坐标超出正方形区域范围内,选择将正方形区域向外扩展二分之一标准距离宽度,在扩展后的局部区域内进行透视变换,计算透视变换系数,推算出反变换系数m
00
、m
01
、m
02
、m
10
、m
11
、m
12
、m
20
、m
21
和m
22
并按顺序保存。
22.所述步骤4,具体包括:
23.步骤4.1:在gup开辟的每个线程中,根据线程id得到当前线程所处理像素的坐标(x
correct
,y
correct
),判断当前坐标是否超越图像范围;
24.步骤4.2:获取枕形畸变矫正参数,将当前坐标和k1、k2、k3代入枕形畸变矫正公式,得到畸变后坐标(x
g1
,y
g1
);
25.步骤4.3:判断当前坐标属于哪个正方形区域范围内,得到该区域内透视变换系数;
26.步骤4.4:对正方形区域向外扩展,求当前坐标在扩展后区域内的局部坐标,代入透视变换公式,并转换为全局坐标,得到畸变后坐标(x
g2
,y
g2
);
27.步骤4.5:设置系数a,0≤a≤1,计算两个畸变后坐标的加权平均,最终得到当前位置发生畸变后的位置(x
grid
,y
grid
)。
28.本发明基于传统图像矫正算法不适用于显微图像矫正且速度较慢的缺点,针对显微图像的畸变特性和显微图像畸变矫正实际应用中的实时性要求,实现了对显微图像畸变的快速矫正,为后续实时显微图像拼接等需求实现提供了可能性。
附图说明
29.图1是使用显微摄像头拍摄正方形网格玻片所得的网格图像;
30.图2是对网格图像做处理得到的网格图像的一部分轮廓图;
31.图3是对图像分块的示意图;
32.图4是对一个分块区域进行扩展后的局部区域示意图;
33.图5是用于拍摄网格图像的玻片示意图;
34.图6是对图1网格图像进行畸变矫正后得到的结果示意图;
35.图7是本发明流程图。
具体实施方式
36.为了使本发明的目的、技术方案及优点更加清楚,以下结合附图及实施例,对本发明进行详细的说明。
37.参阅图7,本发明公开了一种基于cuda加速的显微图像快速枕形畸变矫正方法,包含预处理和快速矫正算法两大部分。预处理算法使用图像算法求得畸变前后坐标对应关系,分别计算出整体与局部畸变矫正系数并保存;快速畸变矫正算法使用分别前述畸变矫正系数求出待矫正图像每个像素在畸变后图像中的坐标,并叠加矫正效果,得到最终矫正后图像。
38.第一部分,畸变矫正的预处理算法,该方法包括:
39.步骤1:读入使用显微摄像头拍摄的正方形网格图像,如图1所示,使用图像算法提取网格轮廓,计算畸变前后网格中心点坐标映射关系,具体为:
40.读入使用显微摄像头拍摄的正方形网格图像,做白平衡处理并转化为灰度图像;使用0tsu阈值算法对灰度图像进行阈值分割,并对分割后二值图像提取轮廓;对提取出的轮廓,求出所有轮廓大小的平均值,根据轮廓大小对轮廓进行筛选,去除较小的杂质和其他非网格的轮廓;对余下的轮廓使用形态学处理,做开运算,得到形状更加标准网格轮廓,最终得到的轮廓的一部分如图2所示;
41.对每个轮廓,依次对轮廓上所有点的x、y坐标分别求和,再除以轮廓的长度,求得网格轮廓的中心点,得到网格的中心点坐标;依据y坐标对轮廓中心点序列进行排序,根据y坐标的值对中心点按行分类,从第0行开始,每一行存储为子向量,所有中心点存储为二维向量,共有n
row
行;对每一行,依据x坐标进行排序,从左向右排列,共有n
col
列;
42.检查网格中心点数量,是否有遗漏,若缺少数量少于2,定位数量异常的行,使用上下左右临近四个网格中心点的坐标平均值代替该处的值,若遗漏点的数量大于等于2,报告异常,申请重新拍摄并返回;
43.检查网格中心点数量,是否有多余,若多余数量少于2,定位数量异常的行,判断与临近网格中心点坐标的差值,若差值明显小于网格中心点间距离,删除该坐标,若无法准确定位多余的点或多余点的数量大于等于2,报告异常,申请重新拍摄并返回;检查网格中心点的值,和临近上下两个网格中心点的坐标平均值做对比,若差距较大,再与临近左右两个网格中心点坐标的平均值做对比,若还是差距较大,则使用上下左右临近四个网格中心点的坐标平均值代替该处的值;
44.根据位置筛选出图像中心5*5网格的中心点坐标,根据摄像机镜头畸变特点,认定该区域未发生畸变,以该区域网格中心点间距离为标准距离w。在n
row
行,n
col
列的二维网格中心点坐标向量中,下标为(n
row
/2,n
col
/2)的点即是位于图像最中心的网格的中心点,该点的坐标为(x
start
,y
start
),网格图像中位于第i行,第j列的网格,其轮廓中心点坐标为(x
grid
,ygrid
),其对应的畸变前的坐标(x
correct
,y
correct
)可根据公式求得,具体为:
45.x
correct
=x
start
+(j-n
col
/2)*w
46.y
correct
=y
start
+(i-n
row
/2)*w
47.对每一个网格做处理,可以得到共n
row
*n
col
对畸变前后对应点。
48.步骤2:计算图像枕形畸变参数,同时对图像分块,计算各区域内透视变换系数,具体有:
49.以(x
start
,y
start
)为中心点,建立枕形畸变矫正公式:
50.x
grid-x
start
=(x
correct-x
start
)*(1+k1r2+k2r4+k3r6)
51.y
grid-y
start
=(y
correct-y
start
)*(1+k1r2+k2r4+k3r6)
52.其中r为(x
correct
,y
correct
)距离点(x
start
,y
start
)的距离:
53.r=(x
correct-x
start
)2+(y
correct-y
start
)254.将畸变前坐标(x
correct
,y
correct
)和对应畸变后坐标(x
grid
,y
grid
)分别代入,求得畸变矫正参数k1、k2、k3并保存;
55.以点(x
start
,y
start
)为起点,以标准距离w为宽度,将图像划分为若干标准正方形区域,在一个正方形区域内涉及临近2*2网格,共包含4个网格中心点,如图3所示,实线为网格轮廓,虚线为图像分块区域。对该区域使用透射变换进行矫正,计算透视变换系数。为防止透射变换后坐标超出正方形区域范围内,选择将正方形区域向外扩展w/2,作为透视变换的局部区域,如图4所示,在这个局部区域内做透视变换;
56.在局部区域内,轮廓中心点坐标为(u
grid
,v
grid
),其对应的畸变前的坐标(u
correct
,v
correct
),则有:
57.u
grid
=x
grid-w/2
58.v
grid
=y
grid-w/2
59.u
correct
=x
correct-w/2
60.v
correct
=y
correct-w/2
61.代入透视变换公式:
[0062][0063]
代入畸变前后坐标点对,计算出每个正方形区域内的透视变换系数m
00
、m
01
、m
02
、m
10
、m
11
、m
12
、m
20
、m
21
和m
22
,并按顺序保存;
[0064]
第二部分,基于cuda的快速畸变矫正实现,该方法包括:
[0065]
步骤3:读入待处理显微图像,上传至图形处理器gpu,用于使用并行计算cuda加速,具体有:
[0066]
将待处理图像、用于存储矫正结果的空白图像、枕形畸变矫正参数和透视变换系数上传至gpu,在gup中开辟若干线程,每个线程处理一个像素,在每个线程内,做相同处理。
[0067]
步骤4:根据枕形畸变矫正公式,计算当前位置畸变后坐标(x
g1
,y
g1
),根据透视变换公式,计算当前位置畸变后坐标(x
g2
,y
g2
),对两个畸变后坐标加权平均得到最终畸变后坐标,具体有:
[0068]
根据线程id得到当前线程所处理像素的坐标(x
correct
,y
correct
),具体有:
[0069]
x
correct
=threadidx.x+blockidx.x*blockdim.x
[0070]ycorrect
=threadidx.y+blockidx.y*blockdim.y
[0071]
判断当前坐标是否超越图像范围,若是则不做处理。获取枕形畸变矫正参数k1、k2和k3,将当前坐标和k1、k2、k3代入枕形畸变矫正公式,得到畸变后坐标(x
g1
,y
g1
)。枕形畸变矫正公式具体有:
[0072]
x
grid-x
start
=(x
correct-x
start
)*(1+k1r2+k2r4+k3r6)
[0073]ygrid-y
start
=(y
correct-y
start
)*(1+k1r2+k2r4+k3r6)
[0074]
其中r为(x
correct
,y
correct
)距离点(x
start
,y
start
)的距离:
[0075]
r=(x
correct-x
start
)2+(y
correct-y
start
)2[0076]
判断当前坐标属于哪个正方形区域范围内,得到正方形区域的行数i,列数j,具体有:
[0077]
i=x
correct
/w
[0078]
j=y
correct
/w
[0079]
计算当前线程所处理像素的坐标(x
correct
,y
correct
)在该正方形区域所处的局部区域内的局部坐标(u
correct
,v
correct
),具体有:
[0080]ucorrect
=x
correct
%w+w/2
[0081]vcorrect
=y
correct
%w+w/2
[0082]
获取该区域内透视变换系数m
00
、m
01
、m
02
、m
10
、m
11
、m
12
、m
20
、m
21
、m
22
,将局部坐标和透视变换系数代入透视变换公式,得到局部区域内畸变后坐标(u
grid
,v
grid
),具体有:
[0083][0084][0085]
根据(u
grid
,u
grid
)得到畸变后坐标(x
g2
,y
g2
),具体有:
[0086]
x
g2
=u
grid
+j*w-w/2
[0087]yg2
=v
grid
+i*w-w/2
[0088]
设置系数a(0≤a≤1),综合考虑两种畸变矫正参数,最终得到畸变后该像素对应的位置(x
grid
,y
grid
),具体有:
[0089]
x
grid
=x
g1
*a+x
g2
*(1-a)
[0090]ygrid
=y
g1
*a+y
g2
*(1-a)
[0091]
步骤5:使用双三次插值法,获取畸变后图像,即待处理图像位于(x
grid
,y
grid
)处像素值,放置于空白图像(x
correct
,y
correct
)处,具体有:
[0092]
对待插值的像素点(x
grid
,y
grid
),其中x
grid
、y
grid
为浮点数,取其附近的4x4邻域点(xi,yj),i,j=0,1,2,3。按如下公式进行插值计算:
[0093][0094]
其中:
[0095][0096]
待gpu处理完所有像素后,将处理后图像从gpu下载至cpu,畸变矫正完成。
[0097]
实施例
[0098]
本实施例中,使用显微摄像头拍摄宽度为10μm的网格玻片,玻片照片如图5所示,得到网格图像,网格图像大小为3200*2200,如图1所示。
[0099]
具体流程如下:
[0100]
s101:读入使用显微摄像头拍摄的正方形网格图像,使用图像算法提取网格轮廓,计算畸变前后网格中心点坐标映射关系。
[0101]
在使用同样设备的情况下,预处理算法只需要调用一次。读入使用显微摄像头拍摄的正方形网格图像,做白平衡处理并转化为灰度图像。使用otsu阈值算法对灰度图像进行阈值分割,并对分割后二值图像提取轮廓。进一步处理提取出的轮廓,得到形状更加标准网格轮廓,最终得到的轮廓的一部分如图2所示。计算网格轮廓的中心点坐标并排序,检查计算出的网格中心点坐标数量、数值是否正确。对每个轮廓,求得网格轮廓的中心点,得到网格的中心点坐标,存储为二维数组,共有n
row
行,n
col
列。这里的坐标值为浮点数类型,避免精度损失。
[0102]
检查网格中心点数量,是否有遗漏,若缺少数量少于2,使用上下左右临近四个网格中心点的坐标平均值代替该处的值,若遗漏点的数量大于等于2,报告异常,申请重新拍摄并返回;检查网格中心点数量,是否有多余,若多余数量少于2,删除错误中心点坐标,若无法准确定位多余的点或多余点的数量大于等于2,报告异常,申请重新拍摄并返回;检查网格中心点的值,和临近上下两个网格中心点的坐标平均值做对比,若差距较大,使用上下左右临近四个网格中心点的坐标平均值代替该处的值。
[0103]
根据位置筛选出图像中心5*5网格的中心点坐标,根据摄像机镜头畸变特点,认定该区域未发生畸变,以该区域网格中心点间距离为标准距离w。在n
row
行,n
col
列的二维网格中心点坐标向量中,下标为(n
row
/2,n
col
/2)的点即是位于图像最中心的网格的中心点,该点的坐标为(x
start
,y
start
),网格图像中位于第i行,第j列的网格,其轮廓中心点坐标为(x
grid
,y
grid
),其对应的畸变前的坐标(x
correct
,y
correct
)可根据公式求得,具体为:
[0104]
x
correct
=x
start
+(j-n
col
/2)*w
[0105]ycorrect
=y
start
+(i-n
row
/2)*w
[0106]
对每一个网格做处理,可以得到共nrow*ncol对畸变前后对应点。
[0107]
s102:计算图像枕形畸变参数,同时对图像分块,计算各区域内透视变换系数。
[0108]
以(x
start
,y
start
)为中心点,建立枕形畸变矫正公式,将畸变前坐标(x
correct
,y
correct
)和对应畸变后坐标(x
grid
,y
grid
)逐个代入并求均值,得到畸变矫正参数k1、k2、k3并保存,枕形畸变矫正公式具体为:
[0109]
x
grid-x
start
=(x
correct-x
start
)*(1+k1r2+k2r4+k3r6)
[0110]ygrid-y
start
=(y
correct-y
start
)*(1+k1r2+k2r4+k3r6)
[0111]
r=(x
correct-x
start
)2+(y
correct-y
start
)2[0112]
为防止透射变换后坐标超出正方形区域范围内,选择将正方形区域向外扩展w/2,
作为透视变换的局部区域,如图4所示;在局部区域内,轮廓中心点坐标为(u
grid
,v
grid
),其对应的畸变前的坐标(u
correct
,v
correct
),代入透视变换公式,求得透视变换系数m
00
、m
01
、m
02
、m
10
、m
11
、m
12
、m
20
、m
21
、m
22
,并按顺序保存。透视变换公式为:
[0113][0114]
s103:读入待处理显微图像,上传至图形处理器gpu,用于使用并行计算cuda加速,具体有:
[0115]
待处理图像拍摄环境与网格图像相同,大小为3200*2200。为便于观察,本发明实施例中,对图1所示网格图像进行畸变矫正。新建空白图像,用于存储处理后的图像。新建空白图像的宽度为((n
col-1)*w,高度为(n
row-1)*w。将待处理图像、空白图像、枕形畸变矫正参数和透视变换系数上传至gpu,在gup中开辟若干线程,每个线程处理一个像素,在每个线程内,做相同处理。
[0116]
s104:根据枕形畸变矫正公式,计算当前位置畸变后坐标(x
g1
,y
g1
),根据透视变换公式,计算当前位置畸变后坐标(x
g2
,y
g2
),对两个畸变后坐标加权平均得到最终畸变后坐标;
[0117]
根据线程id得到当前线程所处理像素的坐标(x
correct
,y
correct
),判断当前坐标是否超越图像范围,若是则不做处理。获取枕形畸变矫正参数k1、k2、k3,将局部坐标和k1、k2、k3代入枕形畸变矫正公式,得到畸变前坐标(x
g1
,y
g1
)。判断当前坐标属于哪个正方形区域范围内,计算当前线程所处理像素的坐标(x
correct
,y
correct
)在该正方形区域所处的局部区域内的局部坐标(u
correct
,v
correct
),获取该区域内透视变换系数,代入透视变换公式,得到局部区域内畸变前坐标(u
grid
,v
grid
),进而计算出畸变前坐标(x
g2
,y
g2
)。设置系数a(0≤a≤1),综合考虑两种畸变矫正参数,最终得到畸变后该像素对应的位置(x
grid
,y
grid
)。本发明实施例中,设置a=0.5,充分利用两种畸变矫正方法的结果。
[0118]
s105:使用双三次插值法,获取畸变后图像,即待处理图像位于(x
grid
,y
grid
)处像素值,放置于空白图像(x
correct
,y
correct
)处。
[0119]
对待插值的像素点(x
grid
,y
grid
),其中x
grid
、y
grid
为浮点数,取其附近的4x4邻域点(xi,yj),i,j=0,1,2,3。按如下公式进行插值计算:
[0120][0121]
其中:
[0122][0123]
待gpu处理完所有像素后,将处理后图像从gpu下载至cpu,畸变矫正完成。
[0124]
本实施例中,基于intel i5-10500处理器、nvidia geforce gtx 1080ti gpu,待处理图像大小为3200*2200图像,使用基于cuda的快速畸变矫正耗时仅7ms,可以实现在拍摄的同时进行矫正,满足显微图像畸变矫正应用的实时性需求。图1所示未矫正图像,图像边缘网格线条发生形变,两端向外弯曲存在枕形畸变,矫正后的图像如图6所示,图像边缘
网格线条与图像边缘平行,形变消失,矫正效果良好。

技术特征:
1.一种基于cuda加速的显微图像枕形畸变快速矫正方法,其特征在于,该方法包括以下步骤:步骤1:读入使用显微摄像头拍摄的正方形网格图像,使用图像算法提取网格轮廓,计算畸变前后网格中心点坐标映射关系;步骤2:计算图像枕形畸变参数,同时对图像分块,计算各区域内透视变换系数;步骤3:读入待处理显微图像,上传至图形处理器gpu,用于使用并行计算cuda加速;步骤4:根据枕形畸变矫正公式,计算当前位置畸变后坐标(x
g1
,y
g1
),根据透视变换公式,计算当前位置畸变后坐标(x
g2
,y
g2
),对两个畸变后坐标加权平均得到最终畸变后坐标;步骤5:使用双三次插值获取畸变后坐标像素值,放置于当前位置,完成图像畸变矫正。2.如权利要求1所述的显微图像枕形畸变快速矫正方法,其特征在于,所述步骤1,具体包括以下步骤:步骤1.1:读入使用显微摄像头拍摄的正方形网格图像,做白平衡处理并转化为灰度图像;步骤1.2:使用otsu算法对灰度图像进行阈值分割,并对分割后二值图像提取轮廓;步骤1.3:对提取出的轮廓,求出所有轮廓大小的平均值,根据轮廓面积对轮廓进行筛选,求得轮廓平均大小,去除面积小于轮廓面积平均值1/3的轮廓;步骤1.4:对余下的轮廓使用形态学处理算法,得到形状标准的网格轮廓;步骤1.5:对每个轮廓求取中心点,得到网格的中心点坐标,此时为发生畸变后坐标;步骤1.6:根据位置筛选出图像中心5*5网格的中心点坐标,根据摄像机镜头畸变特点,认定该区域未发生畸变,以区域网格中心点间距离作为标准距离、图像最中心网格中心点为起点,根据起点坐标和网格位置计算其它网格中心点畸变前坐标。3.如权利要求1所述的显微图像枕形畸变快速矫正方法,其特征在于,所述步骤2,具体为:步骤2.1:建立枕形畸变矫正公式,代入畸变前后对应坐标,求得畸变矫正参数k1、k2和k3并保存;步骤2.2:选取5*5网格中心网格的中心点作为标准网格的起点,以标准距离为宽度,将图像划分为若干标准正方形区域;步骤2.3:依次处理图像划分出的正方形区域,在一个正方形区域内涉及临近2*2网格,共包含4个网格中心点,为防止透射变换后坐标超出正方形区域范围内,选择将正方形区域向外扩展二分之一标准距离宽度,在扩展后的局部区域内进行透视变换,计算透视变换系数,推算出反变换系数m
00
、m
01
、m
02
、m
10
、m
11
、m
12
、m
20
、m
21
和m
22
并按顺序保存。4.如权利要求1所述的显微图像枕形畸变快速矫正方法,其特征在于,所述步骤4,具体包括:步骤4.1:在gup开辟的每个线程中,根据线程id得到当前线程所处理像素的坐标(x
correct
,y
correct
),判断当前坐标是否超越图像范围;步骤4.2:获取枕形畸变矫正参数,将当前坐标和k1、k2、k3代入枕形畸变矫正公式,得到畸变后坐标(x
g1
,y
g1
);步骤4.3:判断当前坐标属于哪个正方形区域范围内,得到该区域内透视变换系数;步骤4.4:对正方形区域向外扩展,求当前坐标在扩展后区域内的局部坐标,代入透视
变换公式,并转换为全局坐标,得到畸变后坐标(x
g2
,y
g2
);步骤4.5:设置系数a,0≤a≤1,计算两个畸变后坐标的加权平均,最终得到当前位置发生畸变后的位置(x
grid
,y
grid
)。

技术总结
本发明公开了一种基于CUDA加速的显微图像枕形畸变快速矫正方法,具体包括以下步骤:读入使用显微摄像头拍摄的正方形网格图像,提取网格轮廓,计算畸变前后网格中心点坐标映射关系;计算枕形畸变参数,同时对图像分块,计算各区域内透视变换系数;读入待处理显微图像,上传至GPU使用CUDA加速;根据枕形畸变矫正公式,计算当前位置畸变后坐标(x


技术研发人员:王思佳 刘洪英 严斯能 庄泉洁
受保护的技术使用者:华东师范大学
技术研发日:2023.04.07
技术公布日:2023/9/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐