halcon的灰度变换(图像增强)

news2024/12/29 10:57:12

参考Halcon代码:

w:=3
h:=3
gen_image_const (Image, 'byte', w, h)
get_domain (Image, Domain)
get_region_points (Domain, Rows, Columns)
*将图像的所有灰度值都设置为1
grayvals:=[1,20,3,10,1,1,1,1,1]
set_grayval (Image, Rows, Columns, grayvals)
get_grayval (Image, Rows, Columns, Grayval1)

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)
get_grayval (ImageResult, Rows, Columns, Grayval2)

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)
get_grayval (ImageInvert, Rows, Columns, Grayval3)

*灰度的非线性变换,提高低灰度值像素的对比度,降低高灰度值像素的对比度
log_image (ImageInvert, LogImage, 'e')
get_grayval (LogImage, Rows, Columns, Grayval4)

*降低低灰度值像素的对比度,提高高灰度值像素的对比度
exp_image (Image, ExpImage, 'e')
get_grayval (ExpImage, Rows, Columns, Grayval5)

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
get_grayval (ImageEquHisto, Rows, Columns, Grayval6)

1、线性灰度变换
1.1 图像相加

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)

上面函数的意思是,将(图像1灰度+图像2灰度)*4+50,等于最终的图像灰度

1.2 图像取反

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)

2、非线性灰度变换

exp_image (Image, ExpImage, ‘e’)
特点:降低低灰度值像素的对比度,提高高灰度值像素的对比度,因为高灰度值对应X轴正方向的值,x增加相同值,y轴的值增加的更多。

在这里插入图片描述

log_image (ImageInvert, LogImage, ‘e’)
特点:提高低灰度值像素的对比度,降低高灰度值像素的对比度,因为高灰度值对应X轴正方向的值,x增加相同值,y轴的值增加的越少。
在这里插入图片描述
3、直方图变换

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
将图像的灰度范围按照一定的关系进行扩大,从而增强图像对比度
参考代码如下:

w:=3
h:=3
gen_image_const (Image, 'byte', w, h)
get_domain (Image, Domain)
get_region_points (Domain, Rows, Columns)
*将图像的所有灰度值都设置为1
grayvals:=[1,20,3,10,1,1,1,1,1]
set_grayval (Image, Rows, Columns, grayvals)
get_grayval (Image, Rows, Columns, Grayval1)

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)
get_grayval (ImageResult, Rows, Columns, Grayval2)

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)
get_grayval (ImageInvert, Rows, Columns, Grayval3)

*灰度的非线性变换,提高低灰度值像素的对比度,降低高灰度值像素的对比度
log_image (ImageInvert, LogImage, 'e')
get_grayval (LogImage, Rows, Columns, Grayval4)

*降低低灰度值像素的对比度,提高高灰度值像素的对比度
exp_image (Image, ExpImage, 'e')
get_grayval (ExpImage, Rows, Columns, Grayval5)

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
get_grayval (ImageEquHisto, Rows, Columns, Grayval6

图像Image是均衡化前的灰度范围,蓝色柱状图显示如下,横坐标为灰度值,纵坐标为该灰度值的个数,

均衡化后的图如下:
可以看出灰度范围变宽了
在这里插入图片描述

直方图工具在Halcon中是如下箭头所指的一个图标,当双击图像变量时,就能出现右上角所示的灰度直方图统计图。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

星河做市基金会全球DAO社区启动,为数字货币市场注入新活力

2024年的数字货币市场即将迎来一次重要的历史性时刻 — 比特币减半,这四年一次的事件将成为全球数字资产市场的焦点,预示着新一轮的牛市浪潮即将到来。在这个关键时刻,星河做市基金会展现出其作为区块链行业领先市值管理公司的独特魅力。 GA…

Angular升级后运行编译变慢?如何解决?

公司的Angular项目升级后,使用体验感十分不好,运行、编译的时间明显增长,工作效率是十分低下,但奈何公司的大佬们都有自己的事情要忙,结识的大佬也不够多,只能靠自己找度娘了。但是,哎&#xff…

2024年最新1000个Java毕业设计选题参考

文章目录 2024年最新Java毕业设计选题参考一、Java毕业设计选题参考二、javaweb毕业设计选题三、springboot/ssm毕业设计选题参考 源码获取: 博主介绍:✌全网粉丝7W,CSDN博客专家、Java大数据领域优质创作者,博客之星、掘金/华为云/阿里云/In…

初识字符串哈希(Hash)

目录 1.字符串哈希的介绍 2.自然溢出哈希 3.单哈希 4.双哈希 5.例题分析 1.自然溢出哈希AC代码 2.单哈希AC代码 3.双哈希AC代码 6.总结 1.字符串哈希的介绍 字符串哈希是一种将字符串映射为一个固定长度的整数或哈希值的技术。它的主要目的是加速字符串比较和搜索操作…

UE开发01--part 1:创建游戏模式、角色、控制器

1,右键选择新建C类 2,选择GameModeBase 3,随便命名,类的类型-->选择:公共; 这个选项会把.h和.cpp文件分开,方便我们查看与修改代码。 4.打开 VS 编辑器,查看我们刚刚创建得两文件…

机器学习 day38(有放回抽样、随机森林算法、XGBoost)

有放回抽样 有放回抽样和无放回抽样的区别:有放回可以确保每轮抽取的结果不一定相同,无放回则每轮抽取的结果都相同 在猫狗的例子中,我们使用”有放回抽样“来抽取10个样本,并组合为一个与原始数据集不同的新数据集,虽…

2.1_2 进程的状态与转换

2.1_2 进程的状态与转换 (一)进程的状态——创建态、就绪态 进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB。 当进程创建完成后,便进入“就绪态”,处于就绪态的进…

如何在Windows系统中检测和结束运行中的程序(任务管理器显示运行程序可能有bug)

如何在Windows系统中检测和结束运行中的程序 在Windows系统的日常使用和管理过程中,我们经常需要检测某个程序是否正在运行,并在必要时结束它。本文将详细介绍如何在Windows系统中检测运行中的程序,并提供多种方法来结束这些程序。 检测运行…

Vue思维导图,复习+预习,其中有些已经弃用了,下期总结下

1、学前了解 2、基础知识 3、组件相关语法 4、高级语法 5、compositionAPI 6、配套工具

QML 高效开发之加载方式

背景 日常使用 QML开发软件过程中,默认使用 qrc 存在开发效率慢问题,比如每次修改界面内容后需要先构建才能看到实际效果,尤其在频繁调试界面样式时显得更繁琐 原理 Qt 中的资源分为两类,编译型和外部二进制资源 编译型资源每…

⭐北邮复试刷题105. 从前序与中序遍历序列构造二叉树__递归分治 (力扣每日一题)

105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

朋友圈程序全开源版源码,附带系统搭建教程

前台一键发布图文,视频,音乐。发布内容支持定位或自定义位置信息。支持将发布内容设为广告模式消息站内通知或邮件通知。支持其他用户注册,支持其他用户发布文章,管理自己的文章。拥有丰富的后台管理功能,一键操作。安装环境 Nginx ≥1.22 …

stm32——hal库学习笔记(外部中断)

一、什么是中断?(了解) 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断 中断的作用和意义 中断的意义:高效处理紧急程序,不会一直占用CPU资源 S…

Android14 InputManager-InputManagerService环境的构造

IMS分为Java层与Native层两个部分,其启动过程是从Java部分的初始化开始,进而完成Native部分的初始化。 □创建新的IMS对象。 □调用IMS对象的start()函数完成启动 同其他系统服务一样,IMS在SystemServer中的ServerT…

浅谈加密算法(对称加密、非对称加密、混合加密、数字签名、哈希函数)

1、对称加密 对称加密只有一个密钥,直接使用这一个密钥对信息进行加密或解密。这样子就使得对称加密解密十分高效,计算量也相较于非对称加密小很多,适合有大量数据的场合。 密钥只有一个且他一定不能泄漏。由此分发密钥,讲这个密钥…

聚合支付,聚合系统,聚合程序或将成为主流

支付市场的变化对用户、代理商和运营商产生了重大影响。 随着政策监管的日益严格,支付行业逐渐朝着标准化和合理化的方向发展,日益增强其安全性。在这个背景下,聚合平台已经成为未来支付行业发展的重要趋势。特别是在“一机一码”政策实施后&…

三防平板丨平板终端丨加固平板丨户外勘测应用

随着科技的不断发展,现代勘测业也在不断升级。相较于传统的勘测设备,三防平板在户外勘测中有着广泛的应用。那么,三防平板在户外勘测中究竟有哪些优势呢? 首先,三防平板具备极强的防水、防尘、防摔能力。在野外勘测中&…

MyBatis---初阶

一、MyBatis作用 是一种更简单的操作和读取数据库的工具。 二、MyBatis准备工作 1、引入依赖 2、配置Mybatis(数据库连接信息) 3、定义接口 Mapper注解是MyBatis中用来标识接口为Mapper接口的注解。在MyBatis中,Mapper接口是用来定义SQL映射的接口,通…

十分钟利用springboot写电商支持多种优惠券规则,使用策略模式替代大量的if-else

前言 在开发电商折扣模块的时候经常会碰到各种优惠规则,那么就会碰到很多条件判断,冗余各种if-else的代码使得维护困难,此时就可以用策略模式来解决,替代大量的冗余判断条件代码,精简代码结构。 策…

建筑行业的重要工具—— 智慧工地管理平台(java源码)

系统定义: 智慧工地管理平台系统是一种集成了先进的信息技术、物联网技术、移动互联网技术等多种技术的工地管理系统。它能够对工地的整个生命周期进行全面的管理,包括工地的规划、设计、施工、监控、验收等各个环节。通过信息化手段,提高了工…