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

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

ROI的生成

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

0f77ecdabb6828ab72928ba1833cbfb4.png

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

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

28d54d91db31cca86d4f2c6a3a6c33da.png

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

6a4311cde0283f6786cf3e118cded167.png

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

1053294e14b8d0fd48b975647a3b5ada.png

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

3cf477e61d08b66afca09c59026577c5.png

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

1a447c13b9e3f485520444c144917031.png

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

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

原图:

4430b9357ec38dda39a262ca8fe7b4f5.png

reduce_domain算子处理后

501b64671ea081dbe9b06ce86ed69745.png

crop_domain算子

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

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

7f9b1b7943f85bfe2d79b70fdef0cf30.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)

4519f85f94be29046bca9d9d50976ca1.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基础系列教程列表:

视觉检测之产品瑕疵检测

视觉检测之焊点检测

模板匹配/仿射变换

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

收藏 | 0点赞 | 0打赏作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值