1、灰度共生矩阵

图像的纹理一般具有重复性,纹理单元往往会以一定的规律出现的图像上,因此这种图像中一定距离之内往往会有两两灰度相同的像素点对,这种特性就适合用灰度共生矩阵表示。

取图像(N×N)中任意一点 (x,y)及偏离它的另一点 (x+a,y+b),设该点对的灰度值为(g1,g2)。令点(x,y) 在整个画面上移动,则会得到各种 (g1,g2)值,设灰度值的级数为 k,则(g1,g2) 的组合共有 k^2;种。对于整个画面,统计出每一种(g1,g2)值出现的次数,然后排列成一个方阵,在用(g1,g2) 出现的总次数将它们归一化为出现的概率P(g1,g2),这样的方阵称为灰度共生矩阵

如图表示的即为角度为0°,距离为1,灰度等级为8级的灰度共生矩阵转换过程。后续还需要对其进行归一化。

OpenCV测试实现:

    Mat imgInput = (Mat_<uchar>(4, 5) << 1, 1, 5, 6, 8,2, 3, 5, 7, 1, 4, 5, 7, 1, 2, 8, 5, 1, 2, 5);Mat imgGLCM = Mat::zeros(Size(9, 9), CV_8UC1);int nHeight = imgInput.rows;int nWwidth = imgInput.cols;for (int i = 0; i < nHeight; ++i){for (int j = 0; j < nWwidth - 1; ++j){int rows = imgInput.at<uchar>(i, j);int cols = imgInput.at<uchar>(i, j + 1);imgGLCM.at<uchar>(rows, cols)++;}}

2、特征表示

调用cooc_feature_image对应于操作符gen_cooc_matrix和cooc_feature_matrix的连续执行。如果要连续计算共现矩阵的多个方向矩阵,则通过gen_cooc_matrix生成矩阵,然后调用运算符cooc_feature_matrix得到的矩阵更有效。参数方向以角度或“均值”的方式传递邻域的方向。在“平均值”的情况下,平均值是在四个方向上计算的。

如图为Halcon文档cooc_feature_matrix中相关的解释。

(1)能量:表示灰度共生矩阵中的元素的平方和。能量越大,表示灰度变化比较稳定,反映了纹理变化变化的均匀程度。比如当像素值全部为1时,对应的共生矩阵中(1,1)有16个,其他为0,则能量为16*16,此时能量最大,灰度变化最稳定,因为都为0嘛。

(2)相关性:表示纹理在行或者列方向的相似程度。相关性越大,相似性越高。

(3)局部均匀性:反映图像局部纹理的变化量。值越大,表示图像局部的变化越小。

(4)反差(对比度):表示矩阵的值的差异程度,也间接表现了图像的局部灰度变化幅度。反差值越大,图像中的纹理深浅越明显,表示图像越清晰;反之,则表示图像越模糊。

根据不同的图片通过选择不同的特征类型及值,即可进行缺陷检测,筛选出我们需要的区域。

如图为过程“detect_mura_defects_texture.hdev”,执行分水岭阈值后,通过能量(Energy)筛选出来的瑕疵。

Halcon算子:灰度共生矩阵gen_cooc_matrix、cooc_feature_matrix、cooc_feature_image相关推荐

  1. halcon算子中文解释

    halcon算子中文解释 comment ( : : Comment : )   注释语句 exit ( : : : )  退出函数 open_file ( : : FileName, FileTyp ...

  2. Halcon算子大全

    ##Halcon算子大全 Halcon算子大全 Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm ...

  3. Halcon算子解释大全

                                             Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www ...

  4. halcon知识:共生矩阵

    一.共生矩阵基本概念 共现矩阵或共现分布(也称为:灰度共现矩阵 GLCM)是在图像上定义为同时出现的像素值(灰度值或颜色)的分布的矩阵) 在给定的偏移量处.它被用作具有各种应用的纹理分析方法,特别是在 ...

  5. Halcon算子--图像、区域、轮廓、测量、拟合、垂足、夹角

    Halcon算子–图像.区域.轮廓.测量.拟合.垂足.夹角 read_image (Image,'fabrik') 画矩形 draw_rectangle1 (3600, Row1, Column1, ...

  6. halcon算子翻译——dev_set_paint

    名称 dev_set_paint - 定义灰度值输出模式. 用法 dev_set_paint( : : Mode : ) 描述 dev_set_paint定义了用于在图形窗口中显示图形对象的输出模式. ...

  7. Halcon算子:min_max_gray和gray_histo的区别

    一.说明 halcon算子需要一个一个抠明白,逐步去除拦路虎.本片介绍几个算子,没看透的算子也是很唬人的. 二.算子min_max_gray min_max_gray(Regions, Image : ...

  8. Halcon算子知识:optical_flow_mg

    一.说明 本文是对halcon手册的整理,如果真正掌握光流法,恐怕一个博文是不够的.作者只能先呈现这个博文,再对文中的晦涩理论进行逐步阐述,参考文章将放在文后,期望读者能从中学到全部知识. 二.关于光 ...

  9. Halcon算子学习:图像阈值分割-threshold、binary_threshold、dyn_threshold算子

    Halcon算子学习:图像阈值分割算子 前言 1.threshold-全局固定阈值分割 2.Binary Threshold-自动全局阈值分割 3.dyn_threshold-局部动态阈值分割 小结: ...

  10. Glcm 灰度共生矩阵,保姆级别教程,获取图片的Glcm和基于Glcm的纹理特征,附讲解思路,python代码的实现

    保姆级别教程,获取图片的Glcm和基于Glcm的纹理特征,附讲解思路,python代码的实现 网络上Glcm的原理很多,但是实现的python代码我确实没找到,讲的也不是很清楚 此文介绍了如何在一张图 ...

最新文章

  1. 技术分享:看我如何利用Outlook来创建基于电子邮件的持久化后门
  2. 朴素贝叶斯(NaiveBayes)算法总结
  3. iostat命令(转)
  4. java死信队列_RabbitMQ 死信队列是什么鬼?
  5. ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记
  6. java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果
  7. 火狐浏览器走局域网中的代理ip
  8. css贝塞尔曲线 多个点_了解贝塞尔曲线的数学和Python实现示例
  9. 前端 docker + gitlab CI 的持续集成(三)
  10. 二、jdk命令之javah命令(C Header and Stub File Generator)
  11. 刘宇凡:苍井空靠粉丝经济卖内衣还能持续多久?
  12. html表单实例:用户反馈表单页面代码
  13. 直流电机单闭环调速matlab仿真,单闭环直流电机调速Simulink仿真.docx
  14. 10秒!看清导数与微分的关系
  15. 项目引入船讯网海图插件
  16. wordpress 安装教程
  17. Ios短视频开发初始化短视频失败或延时太长的问题原因分析
  18. web端网页变为灰色
  19. C++ hdoj 2075 A|B
  20. java对接支付宝(四)-即时到账无秘退款

热门文章

  1. 最简单小米设备怎么不root激活xposed框架
  2. 场外期权业务挂钩个股标的名单又更新啦!
  3. 微软和Google的盈利模式对比分析
  4. html炫彩粒子的代码,HTML5 Canvas炫彩粒子特效生成器
  5. 对不起 我追不上你了。
  6. 【笔记】项目工作中总结(三)
  7. 爬取王者荣耀皮肤图片
  8. dh算法 java_java密钥交换算法DH定义与应用实例分析
  9. ps裁剪和裁切的区别_PS图片的裁剪和裁切的含义和应用
  10. Excel xlsx file; not supported报错