这节主要介绍通过灰度进行特征的选择和提取,基于区域特征进行提取的估计大家都会,这里不再细说,本节通过灰度提取针对某些场合会很有用,例如在三维类的视差图进行处理时,这方面用的是比较多的,废话不多说,下面开始:

*主要介绍是基于灰度进行提取特征的算法,其实更多的是使用区域方法,大家应该和熟悉了,这里只介绍
*通过灰度的使用。
*gray_features(Regions, Image : : Features : Value)
*该算子是用于计算指定区域的灰度特征值,其输入是一组区域,每个区域的特征都存储在一组value数组中
*典型的基于灰度值的特征如下:
*area、row、colum、ra、rb、phi、min、maxread_image (Image, 'F:/机器视觉/Halcon机器视觉算法原理与编程实战/code/code/data/disparity.jpg')*1.区域的灰度特征值
threshold (Image, Regions, 1, 255)
*提取灰度最小值和最大值
gray_features (Regions, Image, 'min', Value)
gray_features (Regions, Image, 'max', Value1)
*输出是:
*Value=1.0
*Value1=255.0*2.区域的最大和最小灰度值
*也可以使用min_max_gray,把参数Percent设置为0,结果和gray_features相同
*该算子的可以得到想要的区间的灰度值,然后进行后续处理,如进一步分割或者求深度
min_max_gray (Regions, Image, 0, Min, Max, Range)
min_max_gray (Regions, Image, 5, Min1, Max1, Range1)
*Min=1.0
*Max=255.0
*Range=254
*Min=39.0
*Max=187.0
*Range1=148*3.灰度的平均值和偏差
*intensity用于计算单张图像上多个区域的灰度平均值和偏差
intensity (Regions, Image, Mean, Deviation)
*Mean=81.9698
*Deviation=48.974*4.灰度区域的面积和中心
*主要算子是area_center_gray,该算子和area_center算子很类似,但是不同的是
*area_center_gray图像的灰度值可以理解为图像的高度,其面积可以理解为图像的体积,每个灰度的图像
*可以理解为点的质量,计算得到的中心是图像区域的重心。
area_center_gray (Regions, Image, Area, Row, Column)
*Area=7.32048e+006
*Row=102.693
*Column=178.468*5.根据灰度特征值选择区域
read_image (Image1, 'F:/机器视觉/Halcon机器视觉算法原理与编程实战/code/code/data/village')rgb1_to_gray (Image1, GrayImage)
median_image (GrayImage, ImageMedian, 'circle', 2, 'mirrored')
threshold (ImageMedian, Regions1, 180, 255)
opening_circle (Regions1, RegionOpening, 6.5)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 20000)
*获取这些区域的平均值和偏差,因为湖面的灰度变换很小,因此偏差会很小
intensity (SelectedRegions, ImageMedian, Mean1, Deviation1)
select_gray (SelectedRegions, ImageMedian, SelectedRegions1, 'deviation', 'and', 0, 9.188)
dev_display (GrayImage)
dev_display (SelectedRegions1)

halcon学习之基于灰度的特征提取相关推荐

  1. 基于Halcon学习的基于灰度值模板匹配【一】exhaustive_match.hdev例程

    * 模板与图像的匹配 read_image (Image, 'fabrik') gen_rectangle1 (Rectangle, 365, 300, 390, 330) *将图像的定义域缩小为创建 ...

  2. Halcon 学习总结——基于动态阈值法、GMM(高斯混合模型)、SVM(支持向量机)的网状物缺陷检测

  3. 基于Halcon学习的基于形状模板匹配【一】find_scaled_shape_model.hdev例程

    套路: (1)读取图片 (2)Blob分析/直接ROI抠图 (3)创建模板 create_scaled_shape_model() (4)匹配模板 find_scaled_shape_model() ...

  4. 基于Halcon学习的缺陷检测【四】光伏电池片的指纹以及划痕检测【第一种方法】

    此例子主要是为了把光伏电池片的指纹以及划痕标注出来.  总代码: *读取图片 read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png') *清除窗口 dev_cle ...

  5. 基于Halcon学习的缺陷检测【五】光伏电池片的指纹以及划痕检测【第二种方法】

     此例子主要是为了把光伏电池片的指纹以及划痕标注出来. 总代码:  *读取图片 read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png')*清除窗口 dev_cle ...

  6. 基于深度学习的Person Re-ID(特征提取)

    一. CNN特征提取 通过上一篇文章的学习,我们已经知道,我们训练的目的在于寻找一种特征映射方法,使得映射后的特征 "类内距离最小,类间距离最大",这种特征映射 可以看作是 空间投 ...

  7. HALCON学习之旅(七)

    HALCON学习之旅(七) 文章目录 HALCON学习之旅(七) 1.MFC与Halcon混合编程 2.C#与Halcon混合编程 3.Halcon测量助手使用 4.Halcon实例进阶一(拟合区域椭 ...

  8. bp 神经网络 优点 不足_【学术论文】基于灰度共生矩阵和BP神经网络的乳腺肿瘤识别...

    摘要 乳腺肿瘤是女性病发率极高的一种肿瘤疾病, 但也是一种可以通过早期确诊.提早治疗来降低病死率的一种疾病.提出灰度共生矩阵结合BP神经网络的方法, 提高乳腺肿瘤的识别率.首先将红外乳腺图像进行预处理 ...

  9. MFC与Halcon混合编程--基于相关性的模板匹配

    文章目录 前言 一.基于相关性的模板匹配 二.基于相关性的模板匹配的代码实现 1.Halcon中完成基于相关性的模板匹配 2.MFC实现与Halcon混合编程 3.实现效果 前言 正在学习Halcon ...

最新文章

  1. 使用maven搭建ssm框架的javaweb项目
  2. Kernel oops panic 调试 (未完待续)
  3. JS验证控制输入中英文字节长度(input、textarea等)
  4. 函数 —— popen() fscanf() sprintf() 执行shell命令并获取结果
  5. 语音识别框架最新进展——深度全序列卷积神经网络登场
  6. android 9patch 漏洞,Android 9patch 图片解析堆溢出漏洞分析(CVE-2015-1532)
  7. [转载]出了国才明白的10件事~(MITBBS ZT)
  8. powergrep linux版本,PowerShell实现简单的grep功能
  9. [POJ 1742] Coins 【DP】
  10. Python与机器视觉(x)下雨啦,图片模拟雨天效果
  11. Webpack4 学习笔记 - 02:loader 打包静态资源(图片)
  12. ros操作系统的介绍
  13. 计算机如何更新目录,wps更新目录【设置办法】
  14. 二进制转十六进制(参考XYJ)
  15. 如何用Python一键修改上万个文件名
  16. 360全景偏移调整_360全景倒车系统安装及调试细节说明
  17. octomap(1):octomap_server报错MessageFilter [target=odom_combined ]: Dropped 100.00% of messages so far
  18. 有没有好人看看,谢谢谢谢
  19. GitLab安装到实战
  20. HAC集群状态检查、切换、数据同步验证方法

热门文章

  1. TurboMail助某水利委员会邮件通讯更新换血
  2. 问题四:C++中inline是干嘛用的
  3. linux切换软件版本,使用Linux的alternatives命令替换选择软件的版本方法
  4. 怎么把截屏的一部分内容涂掉_电脑怎么录屏?录屏软件的使用技巧
  5. 大数据治理体系如何搭建
  6. MySQL存储过程 — 解析 XML 数据并实现插入操作
  7. python占位符_Python(2)——Python的基础语句
  8. 拓展卡尔曼滤波器(EKF)的数学推导
  9. 1. C++基础知识学习及其深入理解(面向对象部分还没学) -- 课程1完成
  10. Android5更新包,Android5.1无法完成整包的更新