实验目的 了解定位图像中关键点的过程。该过程主要涉及到四个算子。draw_Region绘制ROI,reduce_domain修改图像的定义域;用critical_points_sub_pix在ROI区域中提取关键点;使用gen_cross_contour_xld标记关键点。 实验程序 * critical_points.dev: locate saddle point markers in an image * init_hdevelop () * **** * step: acquire image * **** read_image (Image, 'F:/HDevelopWorkSpase/MTV images/ROI_1-2.jpg') init_visualization (Image, 3, 'blue', 'margin', Width, Height, WindowHandle) init_font (WindowHandle, 'Courier', 4) stop () * **** * step: draw region * **** write_string (WindowHandle, 'Draw with the mouse the region of interest') dev_set_color ('white') draw_region (Region, WindowHandle) dev_display (Region) stop () * **** * step: create ROI * **** reduce_domain (Image, Region, ImageReduced) stop () * **** * step: process image within ROI * **** critical_points_sub_pix (ImageReduced, 'facet', 1.5, 8, _, _, _, _, RowSaddle, ColSaddle) dev_clear_window () dev_display (ImageReduced) dev_set_color ('yellow') for i := 0 to |RowSaddle|-1 by 1 endfor stop () reset_hdevelop () 实验结果
在该例子中,我们主要熟悉红色部分的四个运算子的使用。 1.draw_region ( : Region : WindowHandle : )(参见ReferenceHDevelop.pdf P346) 该算子实现交互式的绘制一个闭合区域。使用鼠标左键绘制,右键结束绘制,并自动生成一个闭合区域。值得注意的是,输出的目标区域的灰度值未定义。 该算子可能的前继算子:open_window 可能的后继算子有:reduce_domain, disp_region, set_colored, set_line_width, set_draw 功能类似的算子有:draw_circle, draw_ellipse, draw_rectangle1, draw_rectangle2。 更多相关算子参见:draw_polygon, reduce_domain, fill_up, set_color。 Example: read_image(Image,’fabrik’) disp_image(Image,WindowHandle) draw_region(Region,WindowHandle) reduce_domain(Image,Region,New) regiongrowing(New,Segmente,5,5,6,50) set_colored(WindowHandle,12) disp_region(Segmente,WindowHandle). 2.reduce_domain (
Image, Region : ImageReduced : : ) 该算子实现缩减图像的定义域。将图像的定义域由全图改变到一个指定的区域。从而形成一幅新的图像ImageReduced,ImageReduced定义域由Image的定义域与指定区域(Region)重合部分确定。但是ImageReduced与Image的尺寸一样。 可能的前继算子:get_domain 功能类似的算子:change_domain, rectangle1_domain, add_channels 更多相关算子参见:full_domain, get_domain, intersection 3.critical_points_sub_pix ( Image : : Filter, Sigma,Threshold : RowMin, ColMin, RowMax, ColMax, RowSaddle, ColSaddle ) (参见ReferenceHDevelop.pdf P950) 该算子实现亚像素精度的图像关键点检测。这些关键点包括局部极大极小值和鞍点。输入图像的每个点都用一个二次多项式近似,然后求该二次多项式的极值与鞍点。如果输入点的海赛矩阵的所有特征值的绝对值都大于阈值Threshold,那么该点定义为关键点。这些特征值对应着灰度曲面的曲率。如果所有的特征值都大于零,则该点是局部极小值;如果所有的特征值都小于零,则该点是局部极大值;若特征中有正有负,则该点为鞍点。 可能的后继算子:gen_cross_contour_xld, disp_cross 功能类似的算子:local_min_sub_pix, local_max_sub_pix, saddle_points_sub_pix 更多相关算子参见:local_min, local_max, plateaus, plateaus_center, lowlands, lowlands_center 4. gen_cross_contour_xld ( : Cross : Row, Col, Size, Angle : ) (参见ReferenceHDevelop.pdf P1393) 该算子在输入点生成一个十字形轮廓。Row、Col表示输入点的行列坐标,Size表示两交叉线的长度,Angle表示十字形的旋转角度(0°与45°)。 可能的前继算子:points_foerstner, points_harris, critical_points_sub_pix, local_max_sub_pix, local_min_sub_pix, saddle_points_sub_pix 功能类似的算子:disp_cross |
|