热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Halcon入门学习笔记(2)图像灰度变化图像滤波

一、图像的灰度变化灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使图像动态范围加大,使图

一、图像的灰度变化

在这里插入图片描述
在这里插入图片描述
灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。灰度变换其实质就是按一定的规则修改图像每一个像素的灰度,从而改变图像的灰度范围。常见的灰度变换图像反转,对数变换和伽马变换等。
更多关于灰度变换参考:图像灰度变换——线性灰度变换 和 非线性灰度变换(对数变换 与 伽马变换)

*关闭过程更新,加快代码执行速度
dev_update_off ()
*读取图片
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)*图像转为灰度图
rgb1_to_gray (Image, GrayImage)*图像相加,其中0.8为图像相加之后乘以0.8
add_image (GrayImage, GrayImage, ImageResult, 0.8, 100)*获得图像区域坐标
get_domain (GrayImage, Domain)
get_region_points (Domain, Rows, Columns)*获得图像灰度
get_grayval (GrayImage, Rows, Columns, Grayval)*循环改变值
for i := 0 to |Grayval|-1 by 1if (Grayval[i]>100)Grayval[i]:=255endif
endfor*灰度赋值
set_grayval (ImageResult, Rows, Columns, Grayval)*图像取对数
log_image (GrayImage, LogImage, 'e')*图像取指数
exp_image (LogImage, ExpImage, 'e')*图像均衡化
equ_histo_image (GrayImage, ImageEquHisto)

二、图像滤波


1.图像为什么要滤波? 答:

  • a.消除图像在数字化过程中产生或者混入的噪声。
  • b.提取图片对象的特征作为图像识别的特征模式。

2.滤波器该如何去理解? 答:

  • 滤波器可以想象成一个包含加权系数的窗口或者说一个镜片,当使用滤波器去平滑处理图像的时候,就是把通过这个窗口或者镜片去看这个图像。

噪声的种类参考:常见的噪声:高斯、泊松和椒盐噪声
几种滤波原理参考:


  • 中值滤波&均值滤波
  • 高斯滤波
  • 简单易懂的高斯滤波
  • 加权中值滤波
  • 导向滤波(Guided Filter)公式详解

在halcon中:
均值滤波函数:mean_image()
在这里插入图片描述
中值滤波函数:median_image()
在这里插入图片描述
高斯滤波函数:gauss_filter()
在这里插入图片描述
导向滤波函数:guided_filter()
在这里插入图片描述

dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
* 均值滤波,滤波窗口5*5
mean_image (Image, ImageMean, 5, 5)
*增加白噪声,默认振幅60
add_noise_white (Image, ImageNoise, 60)
* 中值滤波,滤波半径为2
median_image (Image, ImageMedian, 'circle', 2, 'mirrored')
* 高斯滤波,过滤器尺寸默认为5
gauss_filter (Image, ImageGauss, 5)
* 导向滤波,半径5,振幅50
guided_filter (Image, Image, ImageGuided, 5, 50)

推荐阅读
  • 利用HTML5 Canvas高效构建电信网络拓扑图
    电信网络拓扑图在实际应用中具有很高的实用价值。本文介绍了一个基于HTML5 Canvas的电信网络拓扑图项目,不仅实现了基本的图形展示功能,还加入了自动布局和属性栏功能,使项目更加完善。此Demo经过细微调整即可直接应用于实际项目中。 ... [详细]
  • Android Studio 中 Activity 组件详解
    本文介绍了 Android 开发中 Activity 的基本概念、生命周期、状态转换以及如何创建和管理 Activity。通过详细的解释和示例代码,帮助开发者更好地理解和使用 Activity。 ... [详细]
  • 本文介绍了基于Java的汽车租赁系统开发,涵盖了从车辆采购预算到车辆维护的全过程管理。该系统利用现代互联网技术和数据库技术,实现了汽车租赁行业的全面信息化。 ... [详细]
  • 本文详细探讨了如何在 C# 中使用 Infragistics 组件库解决常见的开发问题,包括工具栏按钮禁用、Grid 中的时间记录及样式设置、以及 Excel 导出功能的实现。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 本文探讨了在Django项目中,如何在对象详情页面添加前后导航链接,以提升用户体验。文章详细描述了遇到的问题及解决方案。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 在尝试从数据库获取设置的过程中,遇到了一个致命错误:Fatal error: Call to a member function bind_param() on boolean。本文将详细分析该错误的原因,并提供解决方案。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
author-avatar
fkg7571831
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有