CN109325498B - 基于窗口动态阈值改进Canny算子的叶脉提取方法 - Google Patents
基于窗口动态阈值改进Canny算子的叶脉提取方法 Download PDFInfo
- Publication number
- CN109325498B CN109325498B CN201810832377.1A CN201810832377A CN109325498B CN 109325498 B CN109325498 B CN 109325498B CN 201810832377 A CN201810832377 A CN 201810832377A CN 109325498 B CN109325498 B CN 109325498B
- Authority
- CN
- China
- Prior art keywords
- image
- vein
- fracture
- canny operator
- veins
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/457—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Apparatus For Radiation Diagnosis (AREA)
Abstract
本发明公开了一种基于窗口动态阈值改进Canny算子的叶脉提取方法,包括矫正叶片角度、利用双边滤波器平滑矫正叶片图像、提取主叶脉、利用双向区域增长法去除噪声并提取叶脉等步骤,本发明使用双边滤波替代了传统Canny算子中使用的高斯滤波,使得后继边缘提取的结果中保留了更多的边缘,并提高了长边缘的连通性;利用基于窗口动态阈值改进的Canny算子代替了具有全局性固定Canny阈值的传统Canny算子,有效地补全缺失的叶脉;利用双向区域增长法,在去除噪声的同时,提取并分离出具有较完整细节的主次叶脉。
Description
技术领域
本发明涉及一种基于Canny算子的叶脉提取方法,尤其涉及一种基于窗口动态阈值改进Canny算子的叶脉提取方法,属于计算机视觉技术领域。
背景技术
叶脉提取,是指从不同形状、摆放的叶脉图像中,利用计算机视觉的手段提取出构成叶片主次叶脉的像素。现有方法主要包括聚类分类、边缘检测、神经网络提取等。随着对于叶片种类识别、叶脉网络系统构建具有重要意义。
Canny算子,是一种边缘提取算子,针对一幅灰度图像,通过设置双阈值,利用一阶差分种子点进行扩展,最终得到图像的边缘。具体步骤包括高斯滤波、一阶差分计算、非极大值抑制、双线性阈值的设置。相比其他边缘提取算子,往往能够获得较好的信噪比,并可以通过双阈值的调整,使其适应相应的复杂场景,效果较好地提取出边缘,因此常作为边缘提取的首选算子。
对于Canny算子而言,如能针对不同场景选定合适的阈值,就能提取出信噪比较好的边缘,然而双阈值的设置往往需要通过经验进行人为的调整;同时,整张图片的各个局部的边缘强度有时也存在较大差异,而传统Canny算子中,双阈值是全局共享的,因此往往难以取得适合所有区域的阈值。由此导致其用于叶脉提取时,产生大量的叶脉断裂区、非叶脉边缘,且需要对不同叶片进行不同的阈值设置,因此,需要一种有效的赋予不同边缘强度不同双阈值的方法。
发明内容
本发明要解决的技术问题是提供一种基于窗口动态阈值改进Canny算子的叶脉提取方法。
为解决上述技术问题,本发明采用的技术方案是:
一种基于窗口动态阈值改进Canny算子的叶脉提取方法,包括以下具体步骤:
(1)矫正叶片角度:利用Radon变换获得主叶脉方向,以进行方向矫正:
Radon变换的计算方法为:
R(θ,ρ)=∫∫I(x,y)δ(ρ-xcosθ-ysinθ)dxdy (1)
式中I(x,y)为叶片图像在直角坐标系下坐标(x,y)处的灰度值,(ρ,θ)为极坐标系下的坐标;
通过计算各个方向的投影积分,求得需要将图像需要顺时针旋转θ度,主叶脉方为竖直方向,得到叶脉方向矩阵:
式中θ0为R(θ,ρ)取最大值时的θ值,即旋转弧度,(x0,y0)为图像的旋转中心。
利用叶脉方向矩阵矫正叶片图像,得到矫正方向后的图像I'(x',y'):
式中θ0为R(θ,ρ)取最大值时的θ值,即旋转弧度,(x0,y0)为图像的旋转中心。
利用叶脉方向矩阵矫正叶片图像,得到矫正方向后的图像I'(x',y'):
(2)利用双边滤波器平滑叶片图像:
其中,g(x,y)为平滑处理后的图像在坐标(x,y)处的灰度值,D为(x,y)的邻域窗口,f(x',y')为窗口内的像素值,权重系数w(x,y,x',y')为定义域核d(x,y,x',y')和值域核r(x,y,x',y')的乘积,σd,σr分别为d,r中高斯函数的标准差:
(3)提取主叶脉:将平滑矫正后的叶片图像进行Canny算子边缘检测,得到检测结果图像,将检测结果图像划分为宽度w≥1的区域作为待增强区域,依次扫描断裂行,所述断裂行为存在断裂点的行,相邻的断裂行组成断裂区域,对各断裂区域进行迭代检测,将断裂区域划分为各下限级别子断裂区域,直至达到停止条件为止,当断裂区域中边缘像素点百分比高于预设阈值时,提高Canny算子边缘检测的上限阈值和下限阈值,当断裂区域中边缘像素点百分比低于预设阈值时,降低Canny算子边缘检测的上限阈值和下限阈值,所述停止条件为消除了各级别子断裂,或断裂区域中连续N次迭代处理中边缘像素点数目不变,N为整数,或孤立边缘像素点数目增加;
(4)连接断裂区域中的边缘像素:手动处理,连接断裂区域中的边缘像素,使主叶脉连通,得到主次叶脉图像;
(5)利用双向区域增长法去除噪声并提取叶脉:去除主次叶脉图像的外轮廓后,分别选取主叶脉的上顶点和下顶点进行区域增长,将两个结果图进行与操作之后,再进行膨胀操作,再将膨胀操作结果与主次叶脉图做与操作,获得主叶脉图像;
(6)提取次叶脉图像:将主次叶脉图像减去主叶脉图像,得到次叶脉图像,检测次叶脉图像中各连通域即可得到各次叶脉的相应坐标。
所述的基于窗口动态阈值改进Canny算子的叶脉提取方法,所述叶片图像中包括2片或2片以上树叶,还包括分割叶片和重排叶脉的步骤;
所述分割叶片步骤首先通过阈值化和形态学操作得到1个以上的白色连通域,连通域的外轮廓长大于等于预设阈值的连通域为各叶片所占区域;再通过K-means聚类获得各叶片分区域,逐行按叶片分区域的最小纵坐标排序;
所述重排叶脉步骤将提取到的各叶片的叶脉按原序拼接。
采用上述技术方案所取得的技术效果在于:
(1)本发明使用双边滤波替代了传统Canny算子中使用的高斯滤波,使得后继边缘提取的结果中保留了更多的边缘,并提高了长边缘的连通性;
(2)本发明利用基于窗口动态阈值改进的Canny算子代替了具有全局性固定Canny阈值的传统Canny算子,有效地补全缺失的叶脉;
(3)本发明利用双向区域增长法,在去除噪声的同时,提取并分离出具有较完整细节的主次叶脉。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的流程图;
图2是本发明中实施例1的叶片图像;
图3是本发明中实施例1的叶脉提取效果图;
图4是本发明中实施例1的主叶脉图像;
图5是本发明中实施例1的次叶脉图像。
具体实施方式
实施例1
如图1所示,一种基于窗口动态阈值改进Canny算子的叶脉提取方法,包括以下具体步骤:
(1)矫正叶片角度:利用Radon变换获得主叶脉方向,以进行方向矫正:
Radon变换的计算方法为:
R(θ,ρ)=∫∫I(x,y)δ(ρ-xcosθ-ysinθ)dxdy (1)
式中I(x,y)为叶片图像在直角坐标系下坐标(x,y)处的灰度值,(ρ,θ)为(x,y)在极坐标系下的坐标;
通过计算各个方向的投影积分,求得到与叶脉方向对应的旋转矩阵:
式中θ0为R(θ,ρ)取最大值时的θ值,即旋转弧度,(x0,y0)为图像的旋转中心。
利用叶脉方向矩阵矫正叶片图像,得到矫正方向后的图像I'(x',y'):
式中(x',y')为矫正叶片图像中与叶片图像中(x,y)像素对应的像素;
(2)利用双边滤波器平滑叶片图像:
其中,g(x,y)为平滑处理后的图像在坐标(x,y)处的灰度值,D为(x,y)的邻域窗口,f(x',y')为窗口内的像素值,权重系数w(x,y,x',y')为定义域核d(x,y,x',y')和值域核r(x,y,x',y')的乘积,σd,σr分别为d,r中高斯函数的标准差:
(3)提取主叶脉:将平滑矫正后的叶片图像进行Canny算子边缘检测,得到检测结果图像,将检测结果图像划分为宽度w(w≥1)的区域作为待增强区域,依次扫描断裂行,所述断裂行为存在断裂点的行,相邻的断裂行组成断裂区域,对各断裂区域进行迭代检测,将断裂区域划分为各下限级别子断裂区域,直至达到停止条件为止,当断裂区域中边缘像素点百分比高于预设阈值时,提高Canny算子边缘检测的上限阈值和下限阈值,当断裂区域中边缘像素点百分比低于预设阈值时,降低Canny算子边缘检测的上限阈值和下限阈值,所述停止条件为消除了各级别子断裂,或断裂区域中连续N次迭代处理中边缘像素点数目不变,N为整数,或孤立边缘像素点数目增加;
(4)连接断裂区域中的边缘像素:手动处理,连接断裂区域中的边缘像素,使主叶脉连通,得到主次叶脉图像;
(5)利用双向区域增长法去除噪声并提取叶脉:去除主次叶脉图像的外轮廓后,分别选取主叶脉的上顶点和下顶点进行区域增长,将两个结果图进行与操作之后,再进行膨胀操作,再将膨胀操作结果与主次叶脉图做与操作,获得主叶脉图像;
(6)提取次叶脉图像:将主次叶脉图像减去主叶脉图像,得到次叶脉图像,检测次叶脉图像中各连通域即可得到各次叶脉的相应坐标。
所述的基于窗口动态阈值改进Canny算子的叶脉提取方法,所述叶片图像中包括2片或2片以上树叶,还包括分割叶片和重排叶脉的步骤;
所述分割叶片步骤首先通过阈值化和形态学操作得到1个以上的白色连通域,连通域的外轮廓长大于等于预设阈值的连通域为各叶片所占区域;再通过K-means聚类获得各叶片分区域,逐行按叶片分区域的最小纵坐标排序;
所述重排叶脉步骤将提取到的各叶片的叶脉按原序拼接。
如图2所示,以一组叶片的扫描图像作为输入的叶片图像,然而由于方法的处理是针对单张树叶图像的,因此需要将这十张叶片图像规整地提取出来后单独进行叶脉提取,再将处理完的效果图按原序拼接,又因为摆正的叶片图像有利于之后的提取,因此将叶片图像进行方向矫正,最终的提取效果图按原序拼接结果如图2所示。
因为叶片组中叶片的分布是层次不齐,且为2行,所以在这里使用K-means聚类,以每个叶片连通域的左上顶点的纵坐标或使用连通域的质心为依据,将所有的叶片聚为两类,通过2个聚类中心的纵坐标的比较,可知树叶的上下分布;再通过各叶片连通域左上顶点的横坐标将其进行行内排序,最终得知叶片连通域的顺序。
接着针对提取出的单张叶片,使用Radon变换进行方向矫正,得到矫正后的叶片图像。
在使用Canny算子进行提取边缘提取中,往往在用差分算子进行相关操作前,为了防止边缘的断裂程度太大,需要对图像进行平滑操作。
在传统的Canny算子提取边缘的过程中,使用高斯滤波器对图像进行平滑处理。然而由于高斯滤波并未考虑边缘因素,使用高斯滤波器进行平滑操作一方面会抹去一些原本存在的边缘,使得边缘数量减少,另一方面会使得提取的边缘连通性降低,即断裂程度变高,这都是不利于边缘提取的因素。
本发明使用双边滤波器代替原先的高斯滤波器,在既有效地进行平滑的前提下,保护边缘不因平滑操作而丢失,能够增加找到的边缘数量、提高边缘尤其是长边缘的连通性。
边缘提取后,一条叶脉中会有断裂的区域,以一条主叶脉为例,如图4所示,此时提取出的主叶脉因断裂分为三个连通域,不仅无法得到完整的主叶脉,而且很难将叶脉的碎边缘和噪声区分开。降低Canny算子的阈值或许可以将断裂区补全,但同时也会使得全局都引入极大的额外的噪声。再从下顶点开始,进行传统的四方向的区域增长,即可获得去除了噪声边缘的主次叶脉图像。
之后选取上顶点和下顶点,从上顶点开始进行“下左右”三种生长方向的区域增长法,从下顶点开始进行“上左右”三种生长方向的区域增长法,将两种结果进行与操作,即可得到能够极佳地保留叶脉分叉处细节的主叶脉图像。最后,用主次叶脉图像减去主叶脉图像,即可得出次叶脉的图像,结果如图5所示。
Claims (2)
1.一种基于窗口动态阈值改进Canny算子的叶脉提取方法,其特征在于:包括以下步骤:
(1)矫正叶片角度:利用Radon变换获得主叶脉方向,以进行方向矫正:
Radon变换的计算方法为:
R(θ,ρ)=∫∫I(x,y)δ(ρ-xcosθ-ysinθ)dxdy (1)
式中I(x,y)为叶片图像在直角坐标系下坐标(x,y)处的灰度值,(ρ,θ)为(x,y)在极坐标系下的坐标;
通过计算各个方向的投影积分,求得到与叶脉方向对应的旋转矩阵:
式中θ0为R(θ,ρ)取最大值时的θ值,即旋转弧度,(x0,y0)为图像的旋转中心;
利用叶脉方向矩阵矫正叶片图像,得到矫正方向后的图像I'(x',y'):
式中(x',y')为矫正叶片图像中与叶片图像中(x,y)像素对应的像素;
(2)利用双边滤波器平滑叶片图像:
其中,g(x,y)为平滑处理后的图像在坐标(x,y)处的灰度值,D为(x,y)的邻域窗口,f(x',y')为窗口内的像素值,权重系数w(x,y,x',y')为定义域核d(x,y,x',y')和值域核r(x,y,x',y')的乘积,σd,σr分别为d,r中高斯函数的标准差:
(3)提取主叶脉:将平滑矫正后的叶片图像进行Canny算子边缘检测,得到检测结果图像,将检测结果图像划分为宽度w≥1的区域作为待增强区域,依次扫描断裂行,所述断裂行为存在断裂点的行,相邻的断裂行组成断裂区域,对各断裂区域进行迭代检测,将断裂区域划分为各下限级别子断裂区域,直至达到停止条件为止,当断裂区域中边缘像素点百分比高于预设阈值时,提高Canny算子边缘检测的上限阈值和下限阈值,当断裂区域中边缘像素点百分比低于预设阈值时,降低Canny算子边缘检测的上限阈值和下限阈值,所述停止条件为消除了各级别子断裂,或断裂区域中连续N次迭代处理中边缘像素点数目不变,N为整数,或孤立边缘像素点数目增加;
(4)连接断裂区域中的边缘像素:手动处理,连接断裂区域中的边缘像素,使主叶脉连通,得到主次叶脉图像;
(5)利用双向区域增长法去除噪声并提取叶脉:去除主次叶脉图像的外轮廓后,分别选取主叶脉的上顶点和下顶点进行区域增长,将两个结果图进行与操作之后,再进行膨胀操作,再将膨胀操作结果与主次叶脉图做与操作,获得主叶脉图像;
(6)提取次叶脉图像:将主次叶脉图像减去主叶脉图像,得到次叶脉图像,检测次叶脉图像中各连通域即可得到各次叶脉的相应坐标。
2.根据权利要求1所述的基于窗口动态阈值改进Canny算子的叶脉提取方法,所述叶片图像中包括2片或2片以上树叶,其特征在于:还包括分割叶片和重排叶脉的步骤;
所述分割叶片步骤首先通过阈值化和形态学操作得到1个以上的白色连通域,连通域的外轮廓长大于等于预设阈值的连通域为各叶片所占区域;再通过K-means聚类获得各叶片分区域,逐行按叶片分区域的最小纵坐标排序;
所述重排叶脉步骤将提取到的各叶片的叶脉按原序拼接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832377.1A CN109325498B (zh) | 2018-07-26 | 2018-07-26 | 基于窗口动态阈值改进Canny算子的叶脉提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832377.1A CN109325498B (zh) | 2018-07-26 | 2018-07-26 | 基于窗口动态阈值改进Canny算子的叶脉提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109325498A CN109325498A (zh) | 2019-02-12 |
CN109325498B true CN109325498B (zh) | 2022-02-25 |
Family
ID=65264057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810832377.1A Active CN109325498B (zh) | 2018-07-26 | 2018-07-26 | 基于窗口动态阈值改进Canny算子的叶脉提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109325498B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948631B (zh) * | 2019-03-26 | 2019-11-05 | 山东山大新元易通信息科技有限公司 | 一种初烤烟叶青筋烟自动识别方法及青筋烟检测报警系统 |
CN110660070B (zh) * | 2019-08-12 | 2023-09-29 | 北京瀚景锦河科技有限公司 | 一种水稻叶脉图像提取方法和装置 |
CN111062317A (zh) * | 2019-12-16 | 2020-04-24 | 中国计量大学上虞高等研究院有限公司 | 一种扫描文档的裁边方法与系统 |
CN111368856B (zh) * | 2020-03-16 | 2023-07-11 | 广东技术师范大学 | 一种基于视觉的图书盘点系统的书脊提取方法及装置 |
CN112918956A (zh) * | 2021-02-20 | 2021-06-08 | 陆伟凤 | 一种基于图像识别技术的垃圾分类系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103600707A (zh) * | 2013-11-06 | 2014-02-26 | 同济大学 | 一种智能泊车系统的泊车位检测装置及方法 |
CN104036473A (zh) * | 2014-05-30 | 2014-09-10 | 南京邮电大学 | 基于分裂Bregman迭代的快速鲁棒图像运动去模糊方法 |
CN106156754A (zh) * | 2016-07-29 | 2016-11-23 | 浙江工业大学 | 一种基于最大外切矩阵感兴趣区域提取和双边滤波的手指多模态预处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITTO20130940A1 (it) * | 2013-11-20 | 2015-05-21 | St Microelectronics Srl | Kit per analisi biochimiche e metodo per eseguire un processo biochimico di tipo migliorato |
-
2018
- 2018-07-26 CN CN201810832377.1A patent/CN109325498B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103600707A (zh) * | 2013-11-06 | 2014-02-26 | 同济大学 | 一种智能泊车系统的泊车位检测装置及方法 |
CN104036473A (zh) * | 2014-05-30 | 2014-09-10 | 南京邮电大学 | 基于分裂Bregman迭代的快速鲁棒图像运动去模糊方法 |
CN106156754A (zh) * | 2016-07-29 | 2016-11-23 | 浙江工业大学 | 一种基于最大外切矩阵感兴趣区域提取和双边滤波的手指多模态预处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109325498A (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325498B (zh) | 基于窗口动态阈值改进Canny算子的叶脉提取方法 | |
CN108876743B (zh) | 一种图像快速去雾方法、系统、终端及存储介质 | |
WO2020107866A1 (zh) | 一种文字区域获取方法、装置、存储介质及终端设备 | |
CN110163219B (zh) | 基于图像边缘识别的目标检测方法 | |
CN106096491B (zh) | 一种眼底彩色照相图像中微动脉瘤自动化识别方法 | |
EP0440786A1 (en) | A computer based digital image noise reduction method based on overlapping planar approximation | |
CN105139391B (zh) | 一种雾霾天气交通图像边缘检测方法 | |
TWI390465B (zh) | 用於背景去除之影像處理方法 | |
CN109325421B (zh) | 一种基于边缘检测的睫毛去除方法及系统 | |
CN114118144A (zh) | 抗干扰的航空遥感图像阴影精准检测方法 | |
CN110717922A (zh) | 一种图像清晰度评价方法及装置 | |
CN111145105B (zh) | 一种图像快速去雾方法、装置、终端及存储介质 | |
CN101123677A (zh) | 改善图像锐度的方法、装置及集成电路 | |
CN104361335B (zh) | 一种基于扫描图像自动去除黑边的处理方法 | |
CN110930321A (zh) | 一种能够自动选取目标区域的蓝/绿幕数字图像抠取方法 | |
CN110909631A (zh) | 一种手指静脉图像roi提取和增强方法 | |
CN109671092A (zh) | 一种改进的Canny图像分割方法和系统 | |
CN108010035A (zh) | 基于方向谷形检测的指静脉图像分割方法及其系统、终端 | |
CN111325688B (zh) | 融合形态学聚类优化大气光的无人机图像去雾方法 | |
CN115937186A (zh) | 一种纺织品缺陷识别方法及系统 | |
Lu et al. | A shadow removal method for tesseract text recognition | |
CN108986079A (zh) | 一种复杂裂隙网络的裂缝提取及优化方法 | |
CN113379649A (zh) | 一种图像增强方法、装置、设备及存储介质 | |
CN106780535A (zh) | 一种灰度图像处理方法 | |
CN110930358B (zh) | 一种基于自适应算法的太阳能面板图像处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |