Halcon学习(4-1)ROI感兴趣区域,reduce_domain和crop_domain,鼠标绘制区域


 ROI (Region of Interest),感兴趣区域。顾名思义,就是你主要想处理的区域。Halcon中处理的对象分为三类,分别是图像(image),区域(region),XLD(extended line description)(主要用在亚像素边缘的提取)。所以从这里可以知道,ROI的作用,其一是加快程序处理速度,原因在于,是程序处理只需处理ROI,其他区域直接跳过。其二,在图像匹配中,可以定义模板。


ROI的生成

除了直接用算子,可以使用向导直接生成ROI和对应的代码,见下图所示:

image.png


image.png 这个是绘制方法:  线,圆,椭圆,矩形,旋转矩形,自由绘制。

image.png 绘制完成后,点箭头所示图标,可以插入代码。



image.png

gen_region_line (ROI_0, 811.5, 563.688, 883.5, 759.719)


image.png

gen_circle (ROI_0, 887.5, 654.531, 89.7888)  *画圆


image.png

gen_ellipse (ROI_0, 859.5, 668.875, rad(-3.50297), 196.398, 61.5433)   *画椭圆


image.png

gen_rectangle1 (ROI_0, 811.5, 554.125, 927.5, 759.719)


image.png

gen_rectangle2 (ROI_0, 847.5, 649.75, rad(-6.81535), 101.121, 79.4347)


image.png

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位置的图像


原图:

image.png 

reduce_domain算子处理后

image.png


crop_domain算子


但是reduce_domain算子并不缩小图像的实际尺寸,如果你只想要ROI区域那块大小的图像,可以使用crop_domain算子。

经crop_domain算子处理后的图像如下:

image.png

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)

image.png


其它相关算子:

下面算子都是鼠标绘制对象,末尾带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-2)halcon测量技术:找线

Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度

Halcon学习(26)dev_get_preferences的用法

Halcon学习(25)if、switch和try

Halcon学习(24)总结(1)

Halcon学习 (22-2) 标定助手

Halcon学习(22)摄像机标定(函数详解)

Halcon学习(21)摄像机标定常用函数(2)

Halcon学习(20)摄像机标定常用函数(1)

Halcon学习(19)标定文件的生成

Halcon学习(18)如何制作标定板

Halcon学习(17)标定板的规格

Halcon学习(16)函数调用

Halcon学习(15)角点检测

Halcon学习(14)绘图

Halcon学习(13)参数和数据结构

Halcon学习(11)边缘检测

Halcon学习(9)两幅图像之间处理

Halcon学习(8)文本操作

Halcon学习(7)图像中显示文字

Halcon学习(6)计数与排序

Halcon学习(5)获取特征点

Halcon学习(4-7)Region相关的算子

Halcon学习(4-6)Region处理:动态阈值,分水岭

Halcon学习(4-5)Region处理:合并区域,扩大和缩小区域,取区域特征值

Halcon学习(4-4)Region处理: 区域相减,区域求补集

Halcon学习(4-3)Region处理:区域连通

Halcon学习(4-2)Region处理:选择区域,分割图像

Halcon学习(4-1)ROI感兴趣区域,reduce_domain和crop_domain,鼠标绘制区域

Halcon学习(3)赋值与数组操作

Halcon学习(2)图像获取与相关参数

Halcon学习(1)读取多张图片


视觉检测之产品瑕疵检测


视觉检测之产品瑕疵检测(1)污点检测

视觉检测之产品瑕疵检测(2)金属表面疤痕

视觉检测之产品瑕疵检测(3)赃污检测

视觉检测之产品瑕疵检测(4)表面划痕


视觉检测之焊点检测


视觉检测之焊点检测(五):动态定位焊点区域ROI续

视觉检测之焊点检测(六):过滤非焊点区域的方法总结

 视觉检测之焊点检测(四):动态定位焊点区域ROI

视觉检测之焊点检测(三):从干扰背景中提取焊点

视觉检测之焊点检测(二):基于形态学的基础焊点检测方法

视觉检测之焊点检测(一):客户需求和焊点检测工艺要求


模板匹配/仿射变换


halcon之屌炸天的变形匹配(1)

Halcon二维仿射变换实例探究

Halcon中模板匹配方法的总结归纳

Halcon之NCC模板扫盲贴

HALCON形状模板匹配shape_model经验及例子

halcon模板匹配,创建模板的总结

Halcon视觉检测——基于灰度的模板匹配

halcon模板匹配 scaled_shape_model模板的另一个例子

Halcon二维仿射变换实例探究

Halcon中两种实现旋转的方法rotate_image和affine_trans_image

halcon的 shape_model模板匹配的算子使用流程的总结

find_shape_mode参数详解及时长优化

halcon的三种模板匹配方法总结

Halcon基于形状特征的模板匹配


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864