Halcon图像增强方法与原理概述

目录

  • 简介
  • Halcon算子与算法原理
    • 1.灰度线性变换
      • a、scale_image
      • b、scale_image_max
      • c、invert_image
    • 2.灰度非线性变换
      • a、log_image
      • b、exp_image
    • 3.图像增强对比度与照明度
      • a、emphasize
      • b、illuminate
    • 4.直方图均衡化
      • a、equ_histo_image
    • 5.灰度图像形态学
      • a、 gray_opening
      • b、gray_closing
      • c、 gray_range_rect
    • 5.图片间操作
      • a、 add_image
      • b、add_image
    • 6、图像平滑
      • a、coherence_enhancing_diff
      • b、mean_curvature_flow
  • 持续更新,如有错误烦请指正,欢乐学习,共同进步

简介

增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。
有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。(摘自百度百科)

Halcon算子与算法原理

1.灰度线性变换

a、scale_image

   g’ := g * Mult + Add g为当前的灰度值,Mult 为所乘的系数,Add为加的偏移值,由公式可以看出用scale_image来处理图像是(倍数+偏移)的变化

b、scale_image_max

计算像素的最大和最小值,按照最大值比例化各个像素,将灰度值拉伸到0-255

c、invert_image

g’ = 255-g
反转图像像素值

2.灰度非线性变换

a、log_image

   对图片进行对数变换g' = ln(g+1)用于提高暗部像素值

b、exp_image

对图片进行指数变换
g'=g的e次幂
用于提高亮部像素值

3.图像增强对比度与照明度

a、emphasize

增强图像对比度
增强图像的高频区域(边缘和拐角),使图像看起来更清晰。

b、illuminate

增强图像照明度
增强图像的高频区域(边缘和拐角),使图像看起来更清晰。

4.直方图均衡化

a、equ_histo_image

通过灰度直方图的线性化,增强图像的对比度
原理参考博文:https://blog.csdn.net/yy197696/article/details/102993968

5.灰度图像形态学

a、 gray_opening

结构元素在图像中滑,灰度值最高的值作为新值,有使图像变亮的作用。 

b、gray_closing

结构元素在图像中滑,灰度值最低的值作为新值,有使图像变暗的作用。 

c、 gray_range_rect

用一个矩形结构元素在图像中滑动,新值 = (矩形中最大的)灰度值-(矩形中最大的)最小的灰度值

5.图片间操作

a、 add_image

两图片灰度值相加 

b、add_image

两图片灰度值相减  

6、图像平滑

a、coherence_enhancing_diff

执行图像的相干性增强扩散
对输入图像Image进行各向扩散处理,以增加Image中包含的图像结构的相关性。
特别是,不连续的图像边缘通过扩散连接,而没有垂直于其主导方向进行平滑。
能使图像的边界变模糊

b、mean_curvature_flow

对图像使用灰度直方图曲率平滑使图像变得平滑。
能使图像干扰降低

持续更新,如有错误烦请指正,欢乐学习,共同进步

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

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

相关文章

指针类型转换(转)

当我们初始化一个指针或给一个指针赋值时,赋值号的左边是一个指针,赋值号的右边是一个指针表达式。在我们前面所举的例子中,绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向…

143. Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes values. For example,Given {1,2,3,4}, reorder it to {1,4,2,3}. public void ReorderList(ListNode head) {if(h…

Halcon图像滤波方法与原理概述

目录简介Halcon算子与算法原理基础滤波a、均值滤波b、中值滤波c、高斯滤波d、导向滤波简介 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和…

碎片化学习不是学习碎片,看这篇了解碎片化学习的真相

高效学习的定义:找到最适合自己的学习手法,在相对短的时间内集中注意力,以解决一个工作生活当中的难题为目的着手学习,你需要勤加练习,有时候还需要向名师求助。——许岑为什么会出现碎片化学习? 随着科技的…

一篇能加深理解linux 虚拟文件系统的博文

URL: http://asionius.com/article/9 https://www.ibm.com/developerworks/cn/linux/l-vfs/转载于:https://www.cnblogs.com/rocklee25/p/6926267.html

如何强制ffmpeg编码时输出一个关键帧

原文地址:http://www.ffmpeg.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6ffmpeg%E7%BC%96%E7%A0%81%E6%97%B6%E8%BE%93%E5%87%BA%E4%B8%80%E4%B8%AA%E5%85%B3%E9%94%AE%E5%B8%A7 如何强制ffmpeg编码时输出一个关键帧 AVCodecContext *c //编码器环境句…

Halcon深度学习环境搭建(win下)全网最全教程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/cashmood/article/details/105042928 文章目录halcon深度学习介绍系统与环境搭建1、对电脑系统与硬件…

第二周进度及工作量统计

项目:词频统计修改 项目类型:个人项目 项目完成情况:已完成 项目改进:第二次改进 项目日期:2016.9.14----2.16.9.14 CCSEIT分析需求,设计15:2015:30010编码实现15:3016:20050文档程序说明,随笔2…

p1484 种树

传送门 题目 cyrcyr今天在种树,他在一条直线上挖了n个坑。这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树。而且由于cyrcyr的树种不够,他至多会种k棵树。假设cyrcyr有某种神能力&#xff0c…

Dalsa线扫相机SDK开发-小试牛刀(1)

拿到了dalsa相机,可以用Sapera软件配置相机,进行图像采集。但是自己开发的话就得撸起袖子写代码了,查了两篇不错的博文,作为指导。 Sapera帮助文档 - 《好好先生》专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liubing8609/a…

用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS

用FFMPEG SDK进行视频转码压缩的时候,转码成功后去看视频的内容,发现音视频是不同步的。这个的确是一个恼火的事情。我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到了这个问题。经过研究发现,FFMPEG SDK写入视频的时候有两个地方…

深度学习环境搭建(GPU)CUDA安装(完全版)

文章目录1、查询电脑硬件2、环境搭建与软件安装1、安装CUDA运算平台软件2、安装cuDNN支持包3、配置环境变量3、验证CUDA与cuDNN安装前几天在看深度学习。因为对深度学习不是很了解,在配置环境时走了许多弯路,也总是战战兢兢的。现在对深度学习的环境搭建…

Linux 中的文件压缩与解压

.tar tar xvf FileName.tar # 解压 tar cvf FileName.tar DirName # 压缩 .gz gunzip FileName.gz # 解压 gzip -d FileName.gz # 解压 gzip FileName # 压缩 .tar.gz 和 .tgz tar zxvf FileName.tar.gz # 解压 tar zcvf FileName.tar.gz DirName # 压缩 .bz2 bzip2 -d FileNam…

Unity3D游戏开发之自由视角下的角色控制

秦元培的博客:http://blog.csdn.net/qinyuanpei/article/details/39125353 1,[Unity3D]Unity3D游戏开发之角色控制漫谈 2,[Unity3D]Unity3D游戏开发之自由视角下的角色控制 3,[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色控制效果 转载于:h…

Pycharm用鼠标滚轮控制字体大小

一、pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) —> 在弹出的对话框中选择Add Mouse Shortcut 在弹出的对话框中同时按住ctrl键和鼠标滚轮向上滑。 二、…

Halcon自定义函数封装方法(全网最详细)

文章目录1、名词解释2、例子介绍1、处理原图与任务:2、代码与解析:3、Halcon函数封装方式①明确需求②选取函数部分进行函数创建,更改函数接口③运行验证与函数更改操作有网友说不太清楚这个halcon函数的封装方法。今天写个教程帖子&#xff…

ffmpeg库音频解码示例

#include <stdio.h> #include <stdlib.h> extern "C"{// #include "avcodec.h" #include "avformat.h" } int main(char arg,char *argv[]) { char *filename "02.swf"; av_register_all();//注册所有可…

SQL Where in list 问题

不过,这种做法有两个缺陷1.Oracle In列表的数目有限制(1000)2.不能复用执行计划,每次几乎都是硬解析.3.In拼接可能存在SQL注入的风险

readn writen实现linux下socket缓冲区读写

socket上的read write 操作不同与一般的文件IO操作&#xff0c;socket上的用read write读写的字节数可能比要求的少,但这并不是错误&#xff0c;原因是socket的缓冲区可能已经达到了极限。此时所需要的就是再次调用read write 以写入或输出剩余的字符。这种情况在socket中很常见…

傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析)

文章目录简介程序解析处理结果预览算法讲解简介 detect_indent_fft.hdev是halcon的示例程序&#xff0c;是傅里叶变换进行缺陷检测的一个例子&#xff0c;主要是傅里叶变换在复杂背景下的缺陷检测。 这个程序展示了如何利用快速傅里叶变换&#xff08;FFT&#xff09;对塑料制…