System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于内窥镜成像检测,具体涉及一种适用fpga的内窥镜有效成像区域检测算法。
技术介绍
1、在内窥镜摄像系统中,物体反射的光信号透过柱状镜子到达传感器,传感器根据光信号的强度,将其转换为相应数值的数字信号,从而呈现图像。镜子的截面一般为圆形,因此在摄像系统的输出图像上,往往会有一个圆形的有效区域,呈现出真实的拍摄场景。在有效区域之外,是未正常感光的非有效区域,该部分区域理想情况下是纯黑色的,但实际上因暗电流、设计精度导致的漏光等原因,也会有数值较低的随机像素值的存在。
2、在实际应用中,无效区域的存在会为摄像系统的图像处理带来一定的干扰,尤其是涉及到统计信息的图像算法,大面积的无效像素值会导致巨大的统计误差,使得图像处理结果偏离预期,影响图像最终的呈现效果。
3、传统的有效成像区域检测算法一般使用阈值来区域有效/无效区域,也有基于梯度的检测算法,根据梯度值查找有效/无效区域的圆弧状边界,再通过圆弧边界确认有效区域的圆心和半径。
4、然而,阈值法和基于梯度的圆弧查找法均有一定的局限性。阈值法虽实现简单,但难以确定合适的阈值。对于相同的摄像系统,不同的亮度场景、增益、积分时间等都会对无效区域的平均像素值产生影响;即便是使用能够自适应的阈值(如otsu二值化,查表法等),无效区域的噪点、有效区域的暗区、有效/无效区域边界的光晕等也会大幅度增加误判的概率,使得最终的统计结果准确度不理想。相较于阈值法,基于圆弧查找的算法在一定程度上提高了查找准确率,但往往涉及复杂的圆心计算,在fpga上实现时资
5、因此,如何提高内窥镜有效成像区域检测的准确率,从而减少有效成像区域的误判与漏检等问题是本专利技术申请想要重点解决的技术问题。
技术实现思路
1、本专利技术的目的在于提供一种适用fpga的内窥镜有效成像区域检测算法,以解决上述
技术介绍
中提出的问题。
2、本专利技术目的是这样实现的:一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:该方法包括以下步骤:
3、步骤s1:将检测图像由bgr色域转换到yuv色域,取y通道进行检测;
4、步骤s2:在图像中心位置附近选取若干行,作为搜索边界候选行;
5、步骤s3:对于任意搜索边界候选行,寻找满足条件的左右列坐标;
6、步骤s4:判断各非空候选行左右列坐标是否数值相近,若相近则视为有效位置参与均值统计,否则无效置0;
7、步骤s5:统计各非空候选行左右列坐标偏离左右均值是否在有效范围内;
8、步骤s6:寻找满足步骤s5的直径最大的候选行,若不唯一,行列坐标取平均值;
9、步骤s7:求解有效区域的半径与圆心,根据得到有效区域的半径与圆心确定有效区域的像素范围,从而界定有效/无效区域边界。
10、优选的,所述步骤s1中将检测图像由bgr色域转换到yuv色域,采用如下公式进行转换,转换公式为:
11、
12、其中,y,u,v分别表示yuv色域的y通道图像、u通道图像和v通道图像,r,g,b分别表示rgb色域的r通道图像、g通道图像和b通道图像。
13、优选的,所述搜索边界候选行的间距相同。
14、优选的,所述步骤s3中对于任意候选行,寻找满足条件的左右列坐标,具体操作如下:
15、步骤s3-1:判断任意搜索边界候选行的左右边缘像素是否为有效区域内部的像素点;判断方式采用启动阈值th_start进行比较,选取多个边缘处的像素取均值后进行阈值判断;
16、步骤s3-2:对于有效区域内部的像素点,寻找左右两端第一个像素值变化满足要求的位置,分别记为ni、nj,其中,ni为左侧列坐标,nj为右侧列坐标;
17、步骤s3-3:在左侧列坐标ni存在时,寻找右侧列坐标nj;若右侧列坐标nj存在,记录两侧位置坐标;
18、若任意一侧未找到合理列坐标均不作数,对于无效候选行,ni=nj=0。
19、优选的,所述步骤s3-2中寻找左右两端第一个像素值变化满足要求的位置采用梯度计算,梯度计算采用sobel算子或者prewitt算子。
20、优选的,所述梯度计算采用使用sobel算子,具体操作如下:
21、寻找左侧列坐标ni:使用参数th_grad作为梯度阈值,从候选行的左侧边缘开始,计算各像素点i的梯度是否满足梯度阈值,当左侧像素点i处的梯度大于th_grad时,ni=i;
22、梯度计算使用sobel算子,查找左侧列坐标ni的算子如下:
23、
24、寻找右侧列坐标nj:使用参数th_grad作为梯度阈值,从候选行的右侧边缘开始,计算各右侧像素点j的梯度是否满足梯度阈值,当右侧像素点j处的梯度大于th_grad时,nj=j;
25、梯度计算使用sobel算子,查找右侧列坐标nj的算子如下:
26、
27、优选的,所述梯度计算采用使用prewitt算子,具体操作如下:
28、梯度计算使用prewitt算子,查找左侧列坐标ni的算子如下:
29、寻找左侧列坐标ni:使用参数th_grad作为梯度阈值,从候选行的左侧边缘开始,计算各像素点i的梯度是否满足梯度阈值,当左侧像素点i处的梯度大于th_grad时,ni=i;
30、
31、寻找右侧列坐标nj:使用参数th_grad作为梯度阈值,从候选行的右侧边缘开始,计算各右侧像素点j的梯度是否满足梯度阈值,当右侧像素点j处的梯度大于th_grad时,nj=j;
32、梯度计算使用prewitt算子,查找右侧列坐标nj的算子如下:
33、
34、优选的,所述步骤s4中采用圆心偏离阈值th_center_deviate判断非空候选行左右列坐标是否相近,具体操作如下:
35、遍历各候选行,对于任一非零候选行,即ni≠0且nj≠0,判断|ni-nj|是否小于圆心偏离阈值th_center_deviate,若不符合,将该行设置为无效候选行,即ni=nj=0,不再参与后续计算。
36、优选的,所述步骤s5中统计各非空候选行左右列坐标偏离左右均值是否在有效范围内,具体操作为:
37、对于所有有效行,分别计算左侧列坐标均值mean_i和右侧列坐标均值mean_j,设置均值偏离阈值th_mean_deviate,遍历各有效候选行,若同时满足|ni-mean_i|<th_mean_deviate和|nj-mean_j|<th_mean_deviate,则保留候选行;
38、不能同时满足|ni-mean_i|<th_mean_deviate和|nj-mean_j|<th_mean_deviate,将该行设置为无效候选行,即ni=nj=0本文档来自技高网...
【技术保护点】
1.一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:该方法包括以下步骤:
2.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S1中将检测图像由BGR色域转换到YUV色域,采用如下公式进行转换,转换公式为:
3.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述搜索边界候选行的间距相同。
4.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S3中对于任意候选行,寻找满足条件的左右列坐标,具体操作如下:
5.根据权利要求4所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S3-2中寻找左右两端第一个像素值变化满足要求的位置采用梯度计算,梯度计算采用Sobel算子或者Prewitt算子。
6.根据权利要求5所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述梯度计算采用使用Sobel算子,具体操作如下:
7.根据权利要求5所述的一种适用FPGA的内窥镜有效成像
8.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S4中采用圆心偏离阈值th_center_deviate判断非空候选行左右列坐标是否相近,具体操作如下:
9.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S5中统计各非空候选行左右列坐标偏离左右均值是否在有效范围内,具体操作为:
10.根据权利要求1所述的一种适用FPGA的内窥镜有效成像区域检测算法,其特征在于:所述步骤S7中有效圆形区域的半径的计算方式如下:
...【技术特征摘要】
1.一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:该方法包括以下步骤:
2.根据权利要求1所述的一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:所述步骤s1中将检测图像由bgr色域转换到yuv色域,采用如下公式进行转换,转换公式为:
3.根据权利要求1所述的一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:所述搜索边界候选行的间距相同。
4.根据权利要求1所述的一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:所述步骤s3中对于任意候选行,寻找满足条件的左右列坐标,具体操作如下:
5.根据权利要求4所述的一种适用fpga的内窥镜有效成像区域检测算法,其特征在于:所述步骤s3-2中寻找左右两端第一个像素值变化满足要求的位置采用梯度计算,梯度计算采用sobel算子或者prewitt算子。
6.根据权利...
【专利技术属性】
技术研发人员:任智强,刘莹,李圣波,
申请(专利权)人:江苏无右微创医疗科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。