分享

[转载]Halcon实例ROI

 行走在理想边缘 2016-04-11

实验目的

了解定位图像中关键点的过程。该过程主要涉及到四个算子。draw_Region绘制ROIreduce_domain修改图像的定义域;用critical_points_sub_pixROI区域中提取关键点;使用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

    gen_cross_contour_xld (Cross, RowSaddle[i], ColSaddle[i], 25, 0.785398)

    dev_display (Cross)

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 : : )  (参见ReferenceHDevelop.pdf P495

该算子实现缩减图像的定义域。将图像的定义域由全图改变到一个指定的区域。从而形成一幅新的图像ImageReducedImageReduced定义域由Image的定义域与指定区域(Region)重合部分确定。但是ImageReducedImage的尺寸一样。

可能的前继算子: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

 

该算子在输入点生成一个十字形轮廓。RowCol表示输入点的行列坐标,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

  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章