Halcon算子实现——Texture_Laws
Halcon算子实现——Texture_Laws
- 什么是texture_laws()
- 实现步骤
- 第一步,认识Laws基础向量
- 第二步,Laws核
- 第三步,Laws核与图像做卷积
- 运行结果与时间
- 参考资料
什么是texture_laws()
Laws方法在论文中主要用于检测纹理信息,尤其是对比度比较低的纹理,具有很好的效果,即一张原始图像通过laws变换后得到一系列的图片,把这一系列的图片塞入分类器,分类精度还是比较高的 。在Halcon中使用texture_laws()特殊的滤波核与地对比度低的图像做卷积,得到效果很好的灰度图。
小编的碎碎念念:这个原理具体怎么实现的,各位读者可以看参考资料中的论文,尤其那篇博士论文,写的很细的,小编飘走~~。
实现步骤
网上有许多文章讲的和Halcon中的texture_laws()算子步骤是不一样的,这一点我也是走过了网上套路后才发现的。网上说的是 Laws的整个过程,但是在Halcon中的算子不是完整的Laws,只是运用Laws核对图像做卷积。
第一步,认识Laws基础向量
在构建kernel之前需要了解Laws的基础向量。论文中给出了三种尺寸的基础向量。
1. 尺寸为3的基础向量:
2. 尺寸为5的基础向量:
3. 尺寸为7的基础向量:
每一行前面的字母分别代表:”level“, “edge” ,“spot”, “wave”, “ripple”, “undulation”, “oscillation”(中文意思就不翻译过来了,感觉翻译完了,就变味了~~),这些单词就代表对应向量检测的类型。可以选择滤波向量中的 “l”, “e”, “s”, “r”, “w”, "o"与滤波向量"l"组合来增强图像的低频部分,或者与滤波向量"o"组合来增强图像的高频部分,例如,”le“检测低频部分。Laws的论文介绍最基础的是尺寸3的向量,尺寸5和尺寸7都是由尺寸3得来的。
第二步,Laws核
每一组基础向量都可任意两两组合(即两个向量相乘),所以第一组有9种,第二组有25中,第三组有49种,可以前面的字母来表示,例如尺寸3的第一个和第二个组合,即”le“。”le“由两个两个向量组成,第一个向量代表垂直向量,第二个代表水平向量,所以第一个向量要转置后再与第二个向量相乘,变成一个3X3的矩阵。这个过程如图所示:
其他尺寸的卷积核和上面的过程是一样的。在Laws的论文中说5X5的效果是最好的。
第三步,Laws核与图像做卷积
Laws与图像正常做卷积,重点在处理卷积之后的结果,卷积后的图片的每个像素要做绝对值处理,取完绝对值后,对大于255的像素做截断。这个部分就是Halcon中与Laws论文中记载不同的地方。
运行结果与时间
模拟的算法是基于opencv3.4.1版本的,除了Halcon中shift还没有实现,图片显示效果与Halcon几乎无异,时间与Halcon时间也很接近,1.5~2ms。所以基于Opencv模拟Halcon中texture_laws()算子可行。
参考资料
[1] K. Laws. Textured Image Segmentation , Ph.D. Dissertation, University of Southern California, January 1980.
[2] K. Laws. Rapid texture identification. In SPIE Vol. 238 Image Processing for Missile Guidance , pages 376-380, 1980.
[3] 《Laws’ Texture Measures》这篇文章没有署名,不知是哪位大神写的,但是百度一下就能看到这篇文章。
[4] Halcon 帮助文档
- 这几篇文章对小编有用的部分,简单的翻译了一下(翻译小白级别),如果有需要的可以看一下。
参考文献
学习使我进步,分享使我快乐,您的点赞是对小编最大的鼓励!
作者声明:本文属于原创,转载请注明出处。
Halcon算子实现——Texture_Laws相关推荐
- halcon算子中文解释
halcon算子中文解释 comment ( : : Comment : ) 注释语句 exit ( : : : ) 退出函数 open_file ( : : FileName, FileTyp ...
- Halcon算子大全
##Halcon算子大全 Halcon算子大全 Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm ...
- Halcon算子解释大全
Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www ...
- Halcon算子翻译——dev_set_line_width
名称 dev_set_line_width - 定义region,contour输出的线宽. 用法 dev_set_line_width( : : LineWidth : ) 描述 dev_set_l ...
- Halcon算子--图像、区域、轮廓、测量、拟合、垂足、夹角
Halcon算子–图像.区域.轮廓.测量.拟合.垂足.夹角 read_image (Image,'fabrik') 画矩形 draw_rectangle1 (3600, Row1, Column1, ...
- halcon算子翻译——dev_set_paint
名称 dev_set_paint - 定义灰度值输出模式. 用法 dev_set_paint( : : Mode : ) 描述 dev_set_paint定义了用于在图形窗口中显示图形对象的输出模式. ...
- Halcon算子:min_max_gray和gray_histo的区别
一.说明 halcon算子需要一个一个抠明白,逐步去除拦路虎.本片介绍几个算子,没看透的算子也是很唬人的. 二.算子min_max_gray min_max_gray(Regions, Image : ...
- Halcon算子知识:optical_flow_mg
一.说明 本文是对halcon手册的整理,如果真正掌握光流法,恐怕一个博文是不够的.作者只能先呈现这个博文,再对文中的晦涩理论进行逐步阐述,参考文章将放在文后,期望读者能从中学到全部知识. 二.关于光 ...
- halcon/c++接口基础 之 构造函数与Halcon算子
Halcon/C++提供了构造函数,主要基于适合的Halcon算子.比如说HImage和HBarCode基于read_image and create_bar_code_model. 请注意当前的Ha ...
- Halcon算子学习:图像阈值分割-threshold、binary_threshold、dyn_threshold算子
Halcon算子学习:图像阈值分割算子 前言 1.threshold-全局固定阈值分割 2.Binary Threshold-自动全局阈值分割 3.dyn_threshold-局部动态阈值分割 小结: ...
最新文章
- Tomcat服务器环境配置--查看bat文件(解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题)
- 记事本贪吃蛇游戏代码_如何用Python10分钟绘制贪吃蛇小游戏?
- Nuxt中如何使用Vuex-Store异步获取数据
- Swagger介绍及使用
- SQL Server全局禁用及打开指定的跟踪标记
- 推荐几篇开源论文,包含人脸、目标检测跟踪、分割、去噪、超分辨率等
- vue-cli部署ngixs_nginx部署访问vue-cli搭建的项目的方法
- 行内元素(内联元素)与块级元素
- Git Extensions 2.33出现unhandled exception has ……解决方法
- CF1047D Little C Loves 3 II
- OpenDRIVE工具介绍及地址
- 创业教父Paul Graham: 穷途末路还是康庄大道
- jdk1.8的环境配置
- PPT文件怎么转换成图片
- html5 logo背景透明度,使用纯洁的CSS实现HTML5的新logo
- 一个比较稳定的PLC通讯模块设计
- 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)
- 跑步机健身器材标准ENISO20957检测范围有哪些
- 国外开源IoT平台Thingsboard社区版本(V3.3.2)在Win10环境下进行源码编译及运行指南
- CocosCreator-精灵动态加载图片资源,实例化精灵