基于FPGA语言的图像边界锐化算法、装置和控制系统的制作方法

文档序号:35005816发布日期:2023-08-04 03:14阅读:98来源:国知局
基于FPGA语言的图像边界锐化算法、装置和控制系统的制作方法

本公开涉及,尤其涉及一种基于fpga语言的图像边界锐化算法、装置和控制系统。


背景技术:

1、相机需要在fpga上进行,同时需要快速实时处理数据,并有需要保证低延迟的要求,所以无法进行迭代操作,且资源有限。

2、目前现有一些算法比如图像锐化算法,是使图像边缘更清晰的一种图像处理方法,常用的做法是提取图像的高频分量,将其叠加到原图上。图像高频分量的提取有两种做法,一种是用高通滤波器,得到高频分量,另一种是通过低通滤波,用原图减低频得以高频。直接提取高频的方法有sobel算法、laplcian算子等,sobel算子是图像的一阶导数,提取的是梯度信息,分水平和垂直两种,常常用来做边缘检测、方向判别,sobel算子在斜坡处不为0,因此会产生较粗的边缘。

3、因此上述算法主要是采用对图像高频分量进行增强,但是如果想要使用小资源而不用迭代的方式等实现又都比较不实用,同时锐化可能会增大孤立的的噪声增大。

4、然而针对工业显微镜环境需求,要求图像可以对很细的边界进行精准锐化,同时又要保证尽可能多的进行连贯性锐化用于取得更高的图像效果。因此有必要进行算法改进,提高图像边界锐化效果。


技术实现思路

1、为了解决上述问题,本技术提出一种基于fpga语言的图像边界锐化算法、装置和控制系统。

2、本技术一方面,提出一种基于fpga语言的图像边界锐化算法,其特征在于,包括如下步骤:

3、获取图片,将rgb信号转为yuv数据;

4、基于laplace算子模板,对图片中当前像素点的y分量进行卷积操作,计算并获得当前像素点的maxline值;

5、求取当前像素点n×n内其他所有像素点的maxline值,并计算出其他所有像素点的maxline值的和值;

6、若其他所有像素点的和值大于0且当前像素点的maxline值等于1,则认定当前像素点为需要进行锐化的边界点,并计算最终的锐化值。

7、作为本技术的一可选实施方案,可选地,基于laplace算子模板,对图片中当前像素点的y分量进行卷积操作,计算并获得当前像素点的maxline值,包括:

8、使用laplace算子,构建laplace算子模板;

9、进行非极大值x抑制操作,利用所构建的laplace算子模板x,对当前像素点的x分量做卷积,计算得到gayx分量;

10、进行y分量卷积操作,利用所构建的laplace算子模板y,对当前像素点的y分量做卷积,计算得到gayy分量;

11、计算gayx分量的绝对值和gayy分量的绝对值之和,得到grad:

12、grad=gayx分量的绝对值+gayy分量的绝对值;

13、令dtemp=grad。

14、作为本技术的一可选实施方案,可选地,基于laplace算子模板,对图片中当前像素点的y分量进行卷积操作,计算并获得当前像素点的maxline值,还包括:

15、根据gayx分量和gayy分量,计算当前像素点的梯度值;

16、对梯度值进行插值处理,得到当前像素点的梯度阈值;

17、在预设范围内,判断当前像素点的dtemp是否超过所述梯度阈值:

18、是则maxline=1,当前像素点需进行锐化;

19、否则maxline=0,当前像素点不需要进行检测。

20、作为本技术的一可选实施方案,可选地,根据gayx分量和gayy分量,计算当前像素点的梯度值,包括:

21、(1)如果gayy分量比gayx分量大,说明导数方向趋向于y分量,则:

22、g2=grad[npos-w];

23、g4=grad[npos+w];

24、如果gayx分量和gayy分量的数值正负相同,则:

25、g1=grad[npos-w-1];

26、g3=grad[npos+w+1];

27、如果gayx分量和gayy分量的数值正负不相同,则

28、g1=grad[npos-w+1];

29、g3=grad[npos+w-1];

30、(2)如果gayx分量比gayy分量大,说明导数方向趋向于x分量,则:

31、g2=grad[npos+1];

32、g4=grad[npos-1];

33、如果gayx分量和gayy分量的数值正负相同,则:

34、g1=grad[npos+w+1];

35、g3=grad[npos-w-1];

36、如果gayx分量和gayy分量的数值正负不相同,则:

37、g1=grad[npos-w+1];

38、g3=grad[npos+w-1];

39、其中,npos指的是当前像素点,w指的是窗口大小。

40、作为本技术的一可选实施方案,可选地,对梯度值进行插值处理,得到当前像素点的梯度阈值,包括:

41、利用g1~g4对梯度进行插值:

42、dtemp1=(g1+g2)/2;

43、dtemp2=(g3+g4)/2。

44、作为本技术的一可选实施方案,可选地,求取当前像素点n×n内其他所有像素点的maxline值,并计算出其他所有像素点的maxline值的和值,包括:

45、获取当前像素点的dtemp,如果(dtemp>=dtemp1)且(dtemp>=dtemp2),那么即maxline=1否则maxline=0;

46、按照上述方式,计算当前像素点n×n内其他所有像素点的maxline值;

47、对当前像素点n×n内其他所有像素点的maxline值进行累加,得到当前像素点n×n内其他所有像素点的maxline值的和值。

48、作为本技术的一可选实施方案,可选地,计算最终的锐化值,包括:

49、获取当前像素点的锐度值,判断锐度值的正负情况:

50、当锐度值为正数时,判断为增加,如果大于255-目标值,否则等于255-目标值;

51、当锐度值为负数时,判断为减少,判断如果锐度值大于当前值,则令锐度值等于当前值;再和原值的中心点值累加,得到最终的锐化值。

52、本技术另一方面,提出一种装置,用于实现所述的基于fpga语言的图像边界锐化算法,包括:

53、图像获取模块,用于获取图片,将rgb信号转为yuv数据;

54、算子卷积模块,用于基于laplace算子模板,对图片中当前像素点的y分量进行卷积操作,计算并获得当前像素点的maxline值;

55、和值计算模块,用于求取当前像素点n×n内其他所有像素点的maxline值,并计算出其他所有像素点的maxline值的和值;

56、边界点识别模块,用于在若其他所有像素点的和值大于0且当前像素点的maxline值等于1时,则认定当前像素点为需要进行锐化的边界点,并计算最终的锐化值。

57、本技术另一方面,还提出一种控制系统,包括:

58、处理器;

59、用于存储处理器可执行指令的存储器;

60、其中,所述处理器被配置为执行所述可执行指令时实现所述的基于fpga语言的图像边界锐化算法。

61、本发明的技术效果:

62、本技术通过获取图片,将rgb信号转为yuv数据;基于laplace算子模板,对图片中当前像素点的y分量进行卷积操作,计算并获得当前像素点的maxline值;求取当前像素点n×n内其他所有像素点的maxline值,并计算出其他所有像素点的maxline值的和值;若其他所有像素点的和值大于0且当前像素点的maxline值等于1,则认定当前像素点为需要进行锐化的边界点,并计算最终的锐化值。通过laplace算子模板计算并找到符合锐化条件的边界点,以此对其进行锐化处理。laplacian比sobel算子更适合做图像锐化。针对工业显微镜环境需求,要求图像可以对很细的边界进行精准锐化,同时又要保证尽可能多的进行连贯性锐化用于取得更高的图像效果。本技术的图像边界锐化算法本身,占用资源较少,可以减少孤立点的噪声。

63、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1