金融服务网站建设,平台推广方式方法是什么,人工智能logo设计,阿里云网站建设流程教案文章目录 文章专栏前言文章解读前言创建ROI案例1#xff1a;直接截取ROI手动截取ROI 总结ROI套路获取窗口句柄截取ROI区域获取有效区域 Stop组合 文章专栏 Halcon开发 Halcon学习 练习项目gitee仓库 CSDN Major 博主Halcon文章推荐 前言
今天来看第三章内容#xff0c;既然是… 文章目录 文章专栏前言文章解读前言创建ROI案例1直接截取ROI手动截取ROI 总结ROI套路获取窗口句柄截取ROI区域获取有效区域 Stop组合 文章专栏 Halcon开发 Halcon学习 练习项目gitee仓库 CSDN Major 博主Halcon文章推荐 前言
今天来看第三章内容既然是零基础而且我还有大概3-4个月的时间准备我还是老老实实从头开始学机器视觉好了。
文章解读
下面我将 Region Of Interest 命名为[找重点]
前言
[找重点]可以减少无效信息和[找重点]经常用于找用于模板匹配的区域
创建ROI
Halcon提供了一个[reduce_domain]的方法去获取图片域的ROI信息。
案例1直接截取ROI *读取图片文件
read_image (Image, mreut)
*得到一个坐标为(256,256)半径为200的圆
gen_circle (ROI, 256, 256, 200)
*截取这个圆内的图像信息
reduce_domain (Image, ROI, ImageReduced)
*找到亚像素精度的图片信息
edges_sub_pix (ImageReduced, Edges, lanser2, 0.5, 20, 40)
*显示Image/ROI/Edges
dev_display (Image)
dev_display (ROI)
dev_display (Edges)效果
手动截取ROI * critical_points.hdev: locate saddle point markers in an image
*
dev_update_window (off)
* ****
* 获取图片信息
* ****
*加载图片
read_image (Image, landmarks)
*获取图片大小
get_image_size (Image, Width, Height)
*设置线段等基本参数
dev_close_window ()
*打开图片长宽的窗口拿到WindowHandle的句柄
*dev_open_window (0, 0, Width, Height, black, WindowHandle)
*我更推荐使用自适应图片大小的窗体这个算子
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_set_part (0, 0, Height - 1, Width - 1)
dev_set_line_width (3)
dev_set_color (blue)
dev_set_draw (margin)
dev_display (Image)
set_display_font (WindowHandle, 20, mono, true, false)
* ****
* 截取ROI
* ****
disp_message (WindowHandle, 使用鼠标左键截取图片区域右键退出, window, 12, 12, blue, false)
dev_set_color (white)
*--获取绘画的Region区域
draw_region (Region, WindowHandle)
dev_display (Region)
disp_continue_message (WindowHandle, black, true)
stop ()
* ****
* step: create ROI
* ****
* 使用reduce_domain算子设置图片的ROI
reduce_domain (Image, Region, ImageReduced)
disp_continue_message (WindowHandle, black, true)
stop ()
* ****
* step: process image within ROI
* ****
critical_points_sub_pix (ImageReduced, facet, 1.5, 8, RowMin, ColumnMin, RowMax, ColumnMax, RowSaddle, ColSaddle)*清空整个窗口
dev_clear_window ()
*只显示ROI部分内容
dev_display (ImageReduced)
dev_set_color (yellow)
for i : 0 to |RowSaddle| - 1 by 1gen_cross_contour_xld (Cross, RowSaddle[i], ColSaddle[i], 25, 0.785398)dev_display (Cross)
endfor
stop ()
dev_update_window (on)运行结果
总结
ROI就是个截取部分区域的功能。有主动设置区域和被动设置区域两种方法。
ROI套路
获取窗口句柄
*打开图片长宽的窗口拿到WindowHandle的句柄
*dev_open_window (0, 0, Width, Height, black, WindowHandle)
*我更推荐使用自适应图片大小的窗体这个算子
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)截取ROI区域
* 参数设置ROI区域
gen_circle (ROI, 256, 256, 200)
* 使用WindowHandle窗口句柄鼠标截取ROI区域
draw_region (ROI, WindowHandle)获取有效区域
* 使用reduce_domain句柄获取ROI区域信息
reduce_domain (Image, ROI, ImageReduced)* 可以使用其它算子去解析ROI的ImageReduce区域。
critical_points_sub_pix (ImageReduced, facet, 1.5, 8, RowMin, ColumnMin, RowMax, ColumnMax, RowSaddle, ColSaddle)*--如果想凸显ROI区域可以进行如下操作
*清空整个窗口
dev_clear_window ()
*只显示ROI部分内容
dev_display (ImageReduced) Stop组合
* 使用disp_continue_message和stop组合显示F5继续程序的提示
disp_continue_message (WindowHandle, black, true)
stop ()