一、图像预处理

2023-05-16

四种图像的基本数据结构:

Image:指Halcon的图像类型。

Region:指图像中的一块区域

XLD:指图像中某一块区域的轮廓

Tuple:类似于数组,用于存储一幅或多幅图像

内核矩阵的选择:核越大越模糊

一、图像预处理

1. 图像的变换与校正

变换:平移、旋转、缩放

仿射变换:把前三者结合起来,仿射变换可应用于像素点、二维点、图像、区域、XLD轮廓等对象。

投影变换:仿射变换是投影变换的一种特殊情况,特殊在变换后的图像形状仍然维持原状。而投影变换,又可能变换后图像的形状也发生了很大的改变。

2. 感兴趣区域

裁剪出目标区域,减少计算,提高效率

3. 图像增强

        图像的增强的目的是改善图像的质量。

对比度问题:对比度局部或全部偏低,影响图像视觉

噪声干扰问题:使图像蒙受干扰和破坏

清晰度下降问题,使图像模糊不清,甚至严重失真

        图像的增强是综合和一般性地改善图像质量,解决图像由于噪声、模糊退化和对比度降低等三类问题,获得最好的视觉效果通过对图像的处理,使图像比处理前更适合一个特定的应用突出图像中的“有用”信息,扩大图像中不同物体特征间的差别,为图像信息的识别与提取奠定基础。主要的处理方式:去除噪音、边缘增强、提高对比度、增加亮度、改善颜色效果、改善细微层次等——通常与改善视觉效果相一致。

3.1 直方图均衡化

        统计图像中每个灰度值出现的次数,对直方图进行均衡化操作,使像素的灰度值分布的更加均匀,从而增强图像的亮度。

*清空窗口
dev_close_window()
*读图片
read_image(Image,'E:/C/halcon/tiaoma.jpg')
*转灰度
rgb1_to_gray (Image,GrayImage)
*获取图像尺寸
get_image_size(Image,W,H)
*打开指定大小的新窗口
dev_open_window(0,0,W,H,'black',WindowHandlel)
*显示图像
dev_display(GrayImage)


*直方图均衡化
equ_histo_image (GrayImage,ImageEqu)
*获取Image图像Region区域的灰度相对直方图RelativeHisto和绝对直方图AbsoluteHisto。
*gray_histo ( Regions, Image : : : AbsoluteHisto, RelativeHisto )
gray_histo(Image,Image,AbsoluteHisto1,RelativeHisto1)
gray_histo(ImageEqu,ImageEqu,AbsoluteHisto2,RelativeHisto2)


dev_open_window(0,0,512,512,'black',WindowHandle)
dev_set_color('red')
*将一个直方图转化为一个区域
*AbsoluteHisto1直方图,X,Y中心,1:比例
gen_region_histo(Histo1,AbsoluteHisto1,255,5,1)
dev_set_color('green')
gen_region_histo(Histo2,AbsoluteHisto2,255,450,1)

3.2 增强对比度

对图像的边缘和细节进行增强,使其更加明显。

read_image(Image,'E:/C/halcon/tiaoma.jpg')
*增强对比度  让每个像素之前的差异变大,从而达到增强对比度的效果
*参数3和4:内核矩阵大小,对比度因子
*参数5:比例因子,对比度增加的系数
emphasize(Image,ImageEm,10,10,1.5)
dev_display(ImageEm)

内核矩阵的选择:卷积核的选择

3.3 处理失焦图像

        一些对焦不准的图像可能存在模糊不清的问题,这时需要考虑锐化操作。

锐化的算子有:Sobel、Canny、Laplace算子等,这里用了一种冲击滤波器,用来进行边缘的增强。原理是:再图像的边缘形成一些冲击,以对边缘进行增强。

        图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。

read_image(Image,'E:/C/halcon/tiaoma.jpg')
*处理失焦图像
*参数3:
*参数4:迭代次数
*参数5:Mode:可选canny或laplacian, 二维微分算子
*参数6:Sigma:平滑参数,为了使边缘提的更鲁棒,Sigma是高斯平滑的标准差
shock_filter(Image,SharpenedImage,0.5,20,'canny',2.5)
dev_display(SharpenedImage)

4. 图像平滑与去噪

        图像中存在的杂点、噪声,对于比较均匀的噪声,可以用软件消除

4.1 均值滤波

        将像素灰度值与其邻域内的像素灰度值相加取平均值。

*均值滤波
read_image(Image,'E:/C/halcon/tiaoma.jpg')
mean_image(Image,Image_mean,9,9)
dev_display(Image_mean)

4.2 中值滤波

        以像素点为中心,取一定形状的邻域作为滤波器,再将该区域内的像素灰度值进行排序,以排序结果的中间值作为灰度计算结果赋值给该区域内的像素。

*中值滤波
read_image(Image,'E:/C/halcon/tiaoma.jpg')
median_image(Image,Image_median,'circle',3,'continued')
dev_display(Image_median)

4.3 高斯滤波

        调用一个二维离散的高斯函数,适合用来去除高斯噪声。

*高斯滤波
read_image(Image,'E:/C/halcon/tiaoma.jpg')
gauss_filter(Image,Image_median,5)
dev_display(Image_median)

4.4 这三种滤波怎么选择

5. 光照不均匀

        改善光照的方法有许多,这里只介绍一种采用通道分离的方式对彩色图像进行光线均衡化处理,其步骤如下:

(1)输入光照不均匀的彩色图像。

(2)分离出RGB通道,并将每一个通道单独存储成一幅图像。

(3)对每个颜色通道的图像进行直方图均衡化,使其色彩过渡更加平滑。

(4)将平滑后的3个通道的图像重新组合成三通道的彩色图像。

*通道分离
read_image(Image,'E:/C/halcon/tiaoma.jpg')
*通道分离
decompose3(Image,image1,image2,image3)
*均值滤波
mean_image(image1,Mean1,9,9)
*图像增强 增强对比度
emphasize(Mean1,em1,5,5,1.5)

illuminate(em1,ImageI1,20,20,0.55)
*直方图均衡化
equ_histo_image(image2,ImageEq2)
equ_histo_image(image3,ImageEq3)
*通道合并
compose3(ImageI1,ImageEq2,ImageEq3,MultiChannelImage)
dev_display(MultiChannelImage)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一、图像预处理 的相关文章

  • Linux内核必读五本书籍(强烈推荐)

    深入理解Linux内核 推荐等级 xff1a 5颗星 为了透彻理解Linux的工作机理 xff0c 以及为何它在各种系统上能顺畅运行 xff0c 你需要深入到内核的心脏 cPu与外部世界的所有交互活动都是由内核处理的 xff0c 哪些程序会
  • YOLO系列标注文件txt标签类别索引批量修改脚本

    在我们做YOLO类检测网络的自定义训练时 xff0c 有时会将多个独立的数据集合并训练 xff0c 但往往遇到一个问题 xff0c 比如两个独立的数据集中有相同的一类 xff0c 比如船 但是在一个数据集中船的标注文件 txt文件 的索引为
  • realsense系列(二):录制深度图和RGB图

    录制深度图和RGB图 本次任务使用方法总结 本次任务 利用realsenseviewer软件录制深度图和RGB图 使用方法 1 将realsense连接到计算机上 xff0c 然后打开realsenseviewer软件 xff0c 打开后默
  • realsense系列(三):播放深度图和RGB图

    播放深度图和RGB图 本次任务使用方法总结 本次任务 利用realsenseviewer软件播放深度图和RGB图 使用方法 1 将realsense连接上计算机 然后打开realsenseviewer软件 点击Add Source Load
  • 海思3559万能平台搭建:OSD实时叠加的支持2区域RGN的配置

    前言 位图的生成只是我们字符叠加的基础 xff0c 具体表现就要靠对区域RGN的配置了 调试记录 现在距离移植成功osd也有一段时间了 xff0c 所有所有的报错一时也想不起来太多 xff0c 当时是在焦头烂额没有记录下全部 xff0c 但
  • 在ubuntu中使用命令行下载谷歌浏览器(Linux)

    使用命令行安装谷歌 1 sudo wget http www linuxidc com files repo google chrome list P etc apt sources list d 2 wget q O https dl g
  • TJA1043 CanTrcv

    目录 一 概述 二 功能和优势 2 1 基本功能 2 2 低功耗管理 2 3 保护和诊断 xff08 检测和信号传输 xff09 三 引脚信息 四 功能描述 4 1 五种工作模式 4 1 1 正常模式 4 1 2 仅监听模式 4 1 3 待
  • Git/Gitlab添加SSH秘钥与小乌龟配置

    目录 一 Git Gitlab添加SSH秘钥 二 秘钥添加情况验证 三 小乌龟关联SSH 一 Git Gitlab添加SSH秘钥 xff08 1 xff09 查找是生成sSh秘钥 xff0c 显示文件夹不存在 xff0c 可以生成秘钥 指令
  • 系统分析师之信息化技术(十一)

    目录 一 企业信息化概述 1 1 信息系统的基本概念 1 1 1 什么是信息 1 1 2 什么是信息化 1 1 3 信息系统分类 二 企业信息化规划 2 1 信息化战略体系 2 2 企业战略与信息化战略集成方法 三 信息系统开发方法 3 1
  • 【AUTOSAR】【信息安全】SecOC

    目录 一 概述 二 约束和假设 三 依赖模块 四 功能描述 4 1 安全解决方案的规范 4 1 1 安全解决方案的基本实体 4 1 2 安全的I PDU构建 4 1 3 安全的I PDU验证 4 2 与PduR的关系 4 3 初始化 4 4
  • 计算机网络---网络层

    网络层的作用 IP地址 地址管理 路由选择 1 网络层的作用 首先网络层是为了地址管理和路由选择 xff0c 通过对地址的管理能够保证数据从一台主机上到另一台主机上 xff0c 并且选择合适的路径进行传输 主机 就是PC xff0c 也就是
  • 【AUTOSAR】【通信安全】CRC

    目录 一 概述 二 功能说明 2 1 通用行为 2 2 8位CRC计算 2 2 1 8位SAE J1850 CRC计算 2 2 2 8位0x2F多项式CRC计算 2 3 16位CRC计算 2 3 1 16位CCITT FALSE CRC16
  • 系统分析师之项目管理(十七)

    一 范围管理 范围管理 xff1a 确定项目的边界 xff0c 即哪些工作是项目应该做的 xff0c 哪些工作不应该包括在项目中 二 时间管理 时间管理 xff1a 也叫进度管理 xff0c 就是用科学的方法 xff0c 确定目标进度 xf
  • 【AUTOSA】

    目录 一 概述 二 限制与约束 三 功能描述 3 1 网络通信模式请求的转换 3 2 当前网络通信方式的输出 3 3 外围设备的控制 3 3 1 以太网接口控制器 3 4 多网络 3 5 网络模式状态机 3 5 1 初始化 3 5 2 在亚
  • 【AUTOSAR】【以太网】TCPIP

    目录 一 概述 二 约束和假设 三 依赖模块 3 1 EthIf 3 2 EthSM 3 3 SoAd 3 4 KeyM 3 5 CSM 四 功能说明 4 1 系统扩展性 4 2 IPv4 4 2 1 IPv4 4 2 2 ARP 4 2
  • CMake 链接时出现undefined reference to 错误

    一 问题背景 之前新建了一个项目项目文件分布为 1 src MROR cpp 2 include MROR h 3 main cpp 执行cmake出现undefined reference toxx xff0c 显示main函数中的类成员
  • Ubuntu系统下使用VScode进行CMake编译调试C++程序

    一 前提须知 必须确保你的cmake文件能够编译通过 xff0c 并可以通过make生成可执行文件 二 具体步骤 1 设置CMakeLists txt set CMAKE BUILD TYPE DEBUG 2 VScode调试 VScode
  • 基于TCP协议的Socket编程

    一 基于TCP协议的网络编程 1 TCP IP是一种可靠的网络协议 xff0c 它在通信的两端各建立一个Socket xff0c 从而在通信的两端之间形成网络虚拟链路 xff1b 一旦建立了虚拟的网络链路 xff0c 两端的程序就可以通过虚
  • 示波器抓板子串口,波形错误,杂乱无章

    示波器抓板子串口 xff0c 波形杂乱无章 在使用Hi3559芯片时 xff0c 需要实现串口输出功能 xff0c 实际抓波形时 xff0c 波形杂乱无章 xff0c 感觉很离奇 xff0c 偶然间发现原因 xff0c 在此分享一下 串口信
  • GPS经纬度坐标WGS84到东北天坐标系ENU的转换

    GPS经纬度坐标WGS84到东北天坐标系ENU的转换 常用坐标系介绍地理坐标系 Geographic Coordinate System GCS 地心地固坐标系 ECEF 当地东 北 上 ENU 坐标 基坐标相互转化地理坐标系到地心地固坐标

随机推荐