Halcon 第四章『图像特征与提取』◆第1节:基于区域形状特征
第1节:区域形状特征&相关算子
定义是描述图像中局部区域的几何属性,如面积、中心等。
1、区域的面积和中心点
Image图像 / Features特征 计算区域的面积和中心点坐标 area_center(Regions : : : Area, Row, Column) Regions:输入参数,输入的区域。 Area:输出元组,为每个独立区域的面积。 Row:输出元组,为每个独立区域中心点的行Y坐标。 Column:输出元组,为每个独立区域中心点的列X坐标。 |
案例1:计算ROI区域的面积和中心点坐标
read_image(Image, 'data/holes')
*将图像转换为单通道灰度图
rgb1_to_gray (Image, GrayImage)
*创建矩形选区,选择感兴趣部分
gen_rectangle1 (Rectangle, 180, 83, 371, 522)
*输出感兴趣的区域
reduce_domain (GrayImage, Rectangle, ROI1)
*阈值分割区域
threshold (ROI1, Regions, 0, 95)
*分割后的区域,将不相连的区域连通为独立的区域
connection (Regions, Snowcity)
*计算所有不相连区域的面积和中心点坐标
area_center (Snowcity, Area, Row, Column)
*在窗口中显示面积信息
disp_message(200000, Area, 'window', Row, Column, 'red', 'true')
2、封闭区域(孔洞或封闭的裂缝)的面积
Image图像 / Features特征 提取一个区域中洞(封闭的裂缝)的面积 area_holes(Regions : : : Area) Regions:输入参数,输入需要测量的区域。 Area:输出参数,输出该区域中孔/洞的总面积(数组);如果没有则为0。 |
read_image (Image, 'rings_and_nuts')
threshold (Image, Region, 128, 255)
*提取Region区域中洞的总面积
area_holes (Region, Area)
*在窗口中显示面积信息
disp_message (200000, 'Size of enclosed area (holes): ' + Area + ' pixel', 'window', 12, 12, 'black', 'true')
3、根据特征值选择区域
在菜单栏中此图标为特征直方图 Image图像 / Features特征 根据要求的区域特征提取适应的区域。 select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : ) Regions:输入参数,输入需要测量的区域(数组)。 SelectedRegions:输出参数,输出符合的区域(数组),不符合的区域则不会显示在此。 Features:输入参数,输入要检测的特征,如下 【 'anisometry'——最小外接椭圆,Ra/Rb长轴与短轴的比值。 'area'——区域的面积。 'area_holes'——所有洞的面积。 'bulkiness'——椭圆参数,蓬松度π*Ra*Rb/A。 'circularity'——区域的圆度。 'roundness'——圆度,与circularity计算方法不同。 'compactness'——区域的紧密度。 'connect_num'——输入区域中非连通区域的数量。 'contlength'——轮廓线总长度。 'convexity'——凸性(Min,Max百分比值0.0-1.0)。 'dist_deviation'——区域边界到中心距离的偏差。 'dist_mean'——区域边界到中心的平均距离。 'euler_number'——欧拉数,即连通数和洞数的差。 'height'——输入区域的高度(平行于坐标轴)。 'width'——输入区域的宽度(平行于坐标轴)。 'holes_num'——输入区域包含的孔洞数量。 'inner_radius'——输入区域的最大内接圆的半径。 'outer_radius'——输入区域的最小外接圆的半径。 'inner_width'——输入区域的与坐标轴平行的最大内接矩形的宽度。 'inner_height'——输入区域的与坐标轴平行的最大内接矩形的高度。 'max_diameter'——输入区域的最大直径。 {几何矩 'moments_i1', 'moments_i2', 'moments_i3', 'moments_i4', 'moments_ia', 'moments_ib', 'moments_m02', 'moments_m02_invar', 'moments_m03', 'moments_m03_invar', 'moments_m11', 'moments_m11_invar', 'moments_m12', 'moments_m12_invar', 'moments_m20', 'moments_m20_invar', 'moments_m21', 'moments_m21_invar', 'moments_m30', 'moments_m30_invar', 'moments_phi1', 'moments_phi2', 'moments_psi1', 'moments_psi2', 'moments_psi3', 'moments_psi4',} 'num_sides'——多边形边数。 'orientation':区域方向。 'phi'——等效椭圆方向。 'ra'——等效椭圆长轴半径长度。 'ratio'——比例。 'rb'——等效椭圆短轴半径长度。 'rect2_len1'——最小外接矩形长度的一半。 'rect2_len2'——最小外接矩形长度的一半。 'rect2_phi'——最小外接矩形的方向。 'rectangularity'——矩形度。 'row'——输入区域中心点行坐标。 'column'——输入区域中心点列坐标。 'row1'——左上角行坐标。 'column1'——左上角列坐标。 'row2'——右下角行坐标。 'column2'——右下角列坐标。 'struct_factor'——椭圆参数,Anisometry*Bulkiness-1。 】 Operation:输入参数,特征的方式,【 'and'全部特征, 'or'特征之一】。 Min:输入参数,输入该特征的最小值,范围0.0-99999.0。 Max:输入参数,输入该特征的最大值,范围0.0-99999.0。 |
Image图像 / Features特征 选择彼此有某种关系的区域。 select_shape_std(Regions : SelectedRegions : Shape, Percent : ) Regions:输入参数,输入要检测的区域。 SelectedRegions:输出参数,输出符合的区域(数组),不符合的不会在此显示。 Shape:输入参数,输入要检测的形状特征,【 'max_area'找出最大面积的区域, 'rectangle1'外形类似与水平矩形的百分之多少, 'rectangle2'外形类似于任意矩形的百分之多少】 Percent:输入参数,类似尺寸的百分比,范围0.0-100.0(lin)。 |
read_image (Image, 'fabrik')
*区域生长分割出的Regions
regiongrowing (Image, Regions, 1, 1, 3, 10)dev_set_color ('red')
*Ra/Rb长轴与短轴的比值在0.95-1之间的,输出区域Snowcity-1
select_shape (Regions, Snowcity-1, 'convexity', 'and', 0.95, 1)
dev_set_color ('green')
*区域的高度范围在100-512之间的,输出区域Snowcity-2
select_shape (Regions, Snowcity-2, 'height', 'and', 100, 512)
dev_set_color ('blue')
*面积大小在1-100之间的,输出区域Snowcity-3
select_shape (Regions, Snowcity-3, 'area', 'and', 1, 100)
4、根据特征值创建区域
Image图像 / Features特征 计算一个区域最大的内切圆 inner_circle(Regions : : : Row, Column, Radius) Regions:输入参数,输入的区域 Row,Column:输出参数,输出最大内接圆的圆心坐标。 Radius:输出参数,该最大内接圆的半径。 |
Image图像 / Features特征 计算一个区域内部最大的矩形 inner_rectangle1(Regions : : : Row1, Column1, Row2, Column2) |
Image图像 / Features特征 计算一个区域的最小圆的半径 smallest_circle(Regions : : : Row, Column, Radius) |
Image图像 / Features特征 计算包围一个区域最小的水平矩形 smallest_rectangle1(Regions : : : Row1, Column1, Row2, Column2) |
Image图像 / Features特征 计算包围一个区域最小任意方向摆放的矩形 smallest_rectangle2(Regions : : : Row, Column, Phi, Length1, Length2) Regions:输入参数,输入的区域。 Row, Column:输出参数,最小外接矩形的几何中心坐标。 Phi:输出参数,最小外接矩形的角度方向。要求【- pi / 2 < Phi && Phi <= pi / 2】 Length1:输出参数,输出长轴半径。【 Length1 >= 0.0】 Length2:输出参数,输出短轴半径。【Length2 >= 0.0 && Length2 <= Length1】 |
read_image (Image, 'fabrik')
dev_open_window (0, 0, 512, 512, 'black', WindowID)
dev_set_color ('white')
dev_set_draw ('fill')
regiongrowing (Image, Regions, 1, 1, 3, 500)
inner_circle (Regions, Row, Column, Radius)
dev_set_color ('red')
disp_circle (WindowID, Row, Column, Radius)
dev_close_window ()
read_image (Image, 'data/garlic2')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/1.5, Height/1.5, 'black', WindowHandle)
rgb1_to_gray (Image, GrayImage)
*使阈值处理提取出了较暗的区域
threshold (GrayImage, Region, 100, 255)
*将非连通区域分割成一组区域的集合
connection (Region, ConnectedRegions)
*利用面积特征,将比较大快的区域分割出来
select_shape(ConnectedRegions,selectRegion,'area','and',50000,200000)
*求最小外接矩形
smallest_rectangle2 (selectRegion, Row1, Column1, Phi, Length1, Length2)
*根据矩形参数创建举行的轮廓
gen_rectangle2_contour_xld (Snowcity, Row1, Column1, Phi, Length1, Length2)
*显示最小外接矩形
dev_set_window (WindowHandle)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_display (Image)
dev_display (Snowcity)
参考文献:
杨青—《Halcon机器视觉算法原理与编程实战》
Halcon 第四章『图像特征与提取』◆第1节:基于区域形状特征相关推荐
- Halcon 第七章『图像的几何变换』◆第1节:图像的仿射变换(位置变换、形状变换)及应用
一.介绍 由于相机拍摄的时候可能存在角度偏差,因此实际获得的画面可能会与想象中有所差异.为了校正图像在拍摄中的失真问题,可以对图像进行一些简单的几何变换,如平移.缩放和旋转等,这些是图形学中的基本几何 ...
- Halcon 第七章『图像的几何变换』◆第2节:投影变换
一.介绍 投影变换也叫透射变换.投影映射.透射变换是将图像投影到一个新的视平面,是一种二维坐标到三维坐标的变换. 透射变换是仿射变换的延续,也可以说仿射变换是透射变换的一种特殊形式.其特殊性在于变换后 ...
- Opencv图像特征点提取(
目录 特征点分类 1 ORB ①特征点检测 ②计算特征描述 2 SIFT 1 SIFT特征检测的步骤 ①.在DOG尺度空间中获取极值点,即关键点. ②.特征点方向估计 ③生成特征描述 ④.代码实现 3 ...
- 一起自学SLAM算法:3.4 图像特征点提取
连载文章,长期更新,欢迎关注: 写在前面 第1章-ROS入门必备知识 第2章-C++编程范式 第3章-OpenCV图像处理 3.1 认识图像数据 3.2 图像滤波 3.3 图像变换 3.4 图像特征点 ...
- 图像处理之图像特征及提取
图像处理之图像特征及提取 图像处理过程中常用的特征提取方法 图像特征: 几何特征(位置与方向.周长.面积.长轴与短轴.距离(欧式距离.曼哈顿距离.切比雪夫距离.余弦距离)): 形状特征(几何形态分析( ...
- 麻雀要革命 第四章 旋转!追逐游戏的命运齿轮 第一节
麻雀要革命 第四章 旋转!追逐游戏的命运齿轮 第一节[@more@] "上霞姐,您听说了吗?那个丑女人找蒙太要手机,他给了." "是啊,上霞稀,那个女人不过是坐在蒙太一旁 ...
- 高等数学笔记-乐经良老师-第四章-微分中值定理和导数的应用-第五节-曲线的曲率
高等数学笔记-乐经良 第四章 微分中值定理和导数的应用 第五节 曲线的曲率 一.弧长和弧微分 弧长 曲线内接折线长度的极限 ( 组成折线的线段长 → 0 \rightarrow 0 →0 ) 设曲 ...
- Halcon 第五章『模板匹配Matching』◆第5节:基于组件的模板匹配|Component-Based
一.介绍 基于组件的模板匹配是基于形状匹配的一种应用,也可以说是基于形状的模板匹配的加强版,加强的地方在于,这种方法允许模板中包含多个目标,并且允许目标之间存在相对运动(位移和旋转).区别在于基于形状 ...
- 关于图像特征的提取【转】
特征提取时计算机视觉和图像处理中的一个概念.它指的是计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些自己往往属于孤立的点,连续的曲线或者连续的 ...
最新文章
- HttpClient 连接池设置引发的一次雪崩!
- Android自定义XML属性以及遇到的命名空间的问题
- 外汇汇率接口 java_基于JAVA的货币汇率api调用代码实例
- ts获取服务器数据_怎么使用Satruts2实现页面列表数据导出到Excel表格
- AppleScript快速入门教程
- Windows环境下的安装gcc
- android学习笔记---42_服务的生命周期
- FCK编辑器去掉html标签
- 华为:崛起的 5G 巨龙
- 软件编程常用数据类型打印print
- android 反编译jar包
- NanoPC-T4 RK3399和PC有线本地网络传输摄像头视频python
- 最常见的社会工程攻击
- 视觉工程师:工业相机50问
- STM32-GPRS模块连接系统主站
- 新世纪大学英语(第二版)综合教程第一册 Unit 3 重点单词
- 中国目前拥有的物种和人造卫星的作用
- IPD解读--华为500强的研发第一名,除了钱还有IPD
- C语言程序设计精髓 第13周——原来内存也可以这么玩,我是指针我怕谁 练兵区——编程题
- 在线社交网络影响力分析——总结