ROI (Region of Interest),感兴趣区域。顾名思义,就是你主要想处理的区域。Halcon中处理的对象分为三类,分别是图像(image),区域(region),XLD(extended line description)(主要用在亚像素边缘的提取)。所以从这里可以知道,ROI的作用,其一是加快程序处理速度,原因在于,是程序处理只需处理ROI,其他区域直接跳过。其二,在图像匹配中,可以定义模板。
ROI的生成
除了直接用算子,可以使用向导直接生成ROI和对应的代码,见下图所示:
这个是绘制方法: 线,圆,椭圆,矩形,旋转矩形,自由绘制。
绘制完成后,点箭头所示图标,可以插入代码。
gen_region_line (ROI_0, 811.5, 563.688, 883.5, 759.719)
gen_circle (ROI_0, 887.5, 654.531, 89.7888) *画圆
gen_ellipse (ROI_0, 859.5, 668.875, rad(-3.50297), 196.398, 61.5433) *画椭圆
gen_rectangle1 (ROI_0, 811.5, 554.125, 927.5, 759.719)
gen_rectangle2 (ROI_0, 847.5, 649.75, rad(-6.81535), 101.121, 79.4347)
gen_region_runs (ROI_0, [816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948], [591,589,587,585,568,568,568,568,569,569,569,569,569,569,569,570,570,570,570,570,570,570,571,571,571,571,571,571,571,571,572,572,572,572,572,572,572,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,574,575,577,578,578,578,578,578,583,583,583,583,583,583,583,583,588,588,588,588,589,590,591,592,597,597,597,597,597,597,597,597,602,602,602,602,607,607,607,607], [712,713,715,716,721,722,724,725,726,727,729,730,736,736,736,736,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,745,741,741,741,741,740,739,737,736,735,734,732,731,731,731,731,731,731,731,731,731,726,726,726,726,725,724,722,721,721,721,721,721,711,710,708,707,693,693,693,693])
下面是相关算子的详细说明:
生成矩形ROI
gen_rectangle1()
函数原型:gen_rectangle1(:Rectangle:Row1,Column1,Row2,Column2:)
功能:生成一个平行于坐标轴的矩形,它可以生成一个或多个矩形
参数列表:
第1个参数Rectangle是输出对象,即生成的矩形区域
第2个参数Row1是输入变量,即左上角点的行表示
第3个参数Column1是输入变量,即左上角点的列表示
第4个参数Row2是输入变量,即右下角点的行表示
第5个参数Column2是输入变量,即右下角点的列表示
可替代项:
gen_rectangle2、gen_region_polygon、gen_region_runs、gen_region_points、gen_region_line
绘制完ROI区域后,一般来说要取得区域的图像。
reduce_domain算子
获得特定区域Region位置的图像
原图:
reduce_domain算子处理后
crop_domain算子
但是reduce_domain算子并不缩小图像的实际尺寸,如果你只想要ROI区域那块大小的图像,可以使用crop_domain算子。
经crop_domain算子处理后的图像如下:
crop_domain实际上是能够对图像的尺寸进行剪裁。而且,在halcon其一系列的domain算子均能对图像尺寸进行剪裁。
鼠标画ROI
可以用户手绘ROI区域,这样ROI就可以灵活修改。
算子draw_rectangle1可以实现鼠标手绘矩形区域。
read_image(Image, ImageFiles[0]) get_image_size(Image, Width, Height) rgb1_to_gray(Image, GrayImage) set_tposition(WindowHandle3, 24, 12) write_string(WindowHandle3, '请用鼠标画ROI') draw_rectangle1(WindowHandle3, Row1, Column1, Row2, Column2) gen_rectangle1(roi1, Row1, Column1, Row2, Column2)
其它相关算子:
下面算子都是鼠标绘制对象,末尾带mod的算子带有更丰富的交互内容,比如任何调节大小与位置、方向等等。
draw_point
功能:画一个点。
draw_point_mod
功能:画一个点。
draw_polygon
功能:一个多边形的交互绘图。
draw_rectangle1
功能:画一个与坐标轴平行的矩形。
draw_rectangle1_mod
功能:画一个与坐标轴平行的矩形。
例如:draw_rectangle1_mod(WindowHandle3, 20, 20, 200, 200, Row11, Column11, Row21, Column21)
头4个参数指定起始矩形框出现的位置与大小,中间十字可以鼠标手动矩形,四边的线框可以拖动大小。右键确定。
最后的4个参数返回所绘制区域的大小与位置。
draw_rectangle2
功能:任意定向矩形的交互绘图。
draw_rectangle2_mod
功能:任意定向矩形的交互绘图。
draw_region
功能:一个闭区域的交互绘图。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
halocn基础系列教程列表:
Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度
Halcon学习(26)dev_get_preferences的用法
Halcon学习(4-6)Region处理:动态阈值,分水岭
Halcon学习(4-5)Region处理:合并区域,扩大和缩小区域,取区域特征值
Halcon学习(4-4)Region处理: 区域相减,区域求补集
Halcon学习(4-2)Region处理:选择区域,分割图像
Halcon学习(4-1)ROI感兴趣区域,reduce_domain和crop_domain,鼠标绘制区域
视觉检测之产品瑕疵检测
视觉检测之焊点检测
模板匹配/仿射变换
halcon模板匹配 scaled_shape_model模板的另一个例子
Halcon中两种实现旋转的方法rotate_image和affine_trans_image
halcon的 shape_model模板匹配的算子使用流程的总结

