记录一下图像处理的基础知识

记录一下自己学习的图像处理的基础知识。

一、图像的文件格式以及常用的图像空间

1、文件格式

常见的图像文件格式有 jpg, png, bmp, gif

(1)jpg:有损压缩算法,大幅减小文件大小,便于存储和传输,兼容性强;但是会压缩画质,背景不可透明。

(2)png:无损压缩算法,能够比较好的保留原始图像质量,可以保存透明背景;但是文件较大,不利于传输。

(3)bmp:不进行压缩或使用简单的RLE压缩,不会损失图像质量;文件很大,需要占用大量的存储空间,兼容性有限,背景不可透明。

(4)gif:支持动画效果,兼容性强;但是只能支持256种颜色,研所会损失图像质量。

2、图像空间

rgb:红绿蓝三个颜色通道,是最常用的空间特征。

(255,255,255):白色

(0,0,0):黑色

(255,0,0):纯红色

(255,255,0):纯黄色

hsv:色度(使用360度来表示颜色,如下图)、饱和度(颜色接近光谱色的程度)、明度(颜色的明亮程度)

二、图像预处理

1、图像增强:去噪、锐化

(1)去噪:可以使用图像平滑的方式来达到去噪的作用。

        这里主要记录了空间域图像平滑技术,对图像进行平滑处理的时候,需要一个滤波器,对每个像素点一定范围内的像素点进行计算。滤波又分为线性滤波和非线性滤波。

   滤波类型定义
   线性滤波基于线性运算,将图像中的每一个像素与周围的像素按照一定的权重进行加权求和来生成新的像素值(原理和卷积核是一样的)
   非线性滤波基于非线性运算,比如说中值滤波,将一个像素点和周围的像素点放在一起,取中值作为新的像素点

        两种滤波性质的方法如下:

    滤波类型方法
   线性滤波

均值滤波:固定滤波器窗口大小,计算该窗口内所有像素点的均值作为新的像素点

高斯滤波:卷积核基于高斯函数产生,距离中心像素越近的像素点权重越大,去除噪音的同时能够保留图像的边缘和细节信息。

Sobel滤波:主要用于检测图像的边缘,主要通过计算中心像素与其临近像素在水平上或者垂直上的差值来确定边缘的强度。

   非线性滤波

中值滤波:将一个像素点和周围的像素点放在一起,取中值作为新的像素点。

双边滤波:考虑像素的空间距离和灰度距离,与中心像素灰度值较大的相邻像素,权重低;与中心像素灰度值接近且空间位置靠近的像素,权重高。

形态学滤波:膨胀和腐蚀。对于每个像素,如果结构元素覆盖的区域内所有像素都满足一定条件(如像素值都为 1),则保留该像素,否则将其删除。膨胀则是腐蚀的相反操作,对于每个像素,如果结构元素覆盖的区域内有任何一个像素满足条件,则将该像素设置为满足条件的值。

(2)锐化:通过增强梯度来达到锐化的目的

        1)梯度:图像的梯度是一个矢量,用于描述图像中像素值的变化速度。在二维图像中,通常将水平方向上和垂直方向上的像素值变化分别表示为两个分量:水平梯度和垂直梯度。

        2)计算方式

               a) 一阶差分:分别在水平和垂直的方向上计算中心像素值与左右两边或者是上下两边像素值的差值。

               b)梯度算子:Roberts算子、Prewitt 算子、Sobel 算子等。

                      Roberts算子:基于交叉差分的梯度算法,采用对角线方向相邻两像素之差近似梯    度来检测边缘,对具有陡峭边缘且含噪声少的图像效果较好,但对噪声敏感,定位精度相对较低,计算简单,速度快,可用于一些简单的图像识别、文字图像初步处理。

                      dx = \begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix},  dy = \begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix}

                     Prewitt 算子:利用3x3邻域内的灰度差来计算梯度,然后将两个方向的梯度幅值相加得到该点的边缘强度。

                      水平方向上的卷积核为:

\begin{bmatrix} -1 & 0 & 1\\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{bmatrix}

                      垂直上的卷积核为:

\begin{bmatrix} -1 & -1 & -1\\ 0 & 0 & 0\\ 1 & 1 & 1 \end{bmatrix}

                     Sobel 算子:在上面以及叙述过,这里记录一下Sobel 算子的卷积核:

                      水平方向上的卷积核为:

\begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix}

                      垂直方向上的卷积核为:

\begin{bmatrix} -1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1 \end{bmatrix}

                    

        3)物理应用

             a)边缘检测:一般来说,物体的边缘通常对应着像素值快速变化,因此可以通过梯度的方式来确定图中的边缘位置。

             b)纹理分析:纹理丰富的区域,像素值变化频繁,梯度值也会相应较大且分布较为复杂。通过分析梯度的统计特性,如均值、方差、直方图等,可以对图像的纹理特征进行描述和分类,从而实现纹理分析和识别。

             c)图像锐化:通过增强图像的梯度信息,来时图像中的边缘和细节更加突出。

        4)示例:一般使用梯度的应用过程如下(以使用图像分割为例)

             a)图像预处理:首先,使用滤波对图像去噪

             b)计算梯度:对每个像素计算水平、垂直或斜梯度

             c)阈值化:设定一个背景阈值,当梯度小于这个阈值,判定为背景,当梯度大于这个阈值,判定为前景。

             d)分割结果:根据阈值化后的结果,将每个像素分配到相应的物体类别中,从而实现图像分割。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时间敏感网络中全面分析与调度的模型驱动方法

论文:A Model-Driven Approach for the Comprehensive Analysis and Scheduling in Time-Sensitive Networks》 背景与动机 TSN 的发展与应用领域:自 2012 年起,IEEE 802.1 TSN 任务组致力于开发通信标准,增强 IEEE 802 网络&…

QT---------GUI程序设计基础

代码UI化设计(QT) 实例功能概述 假设我们要创建一个简单的计算器应用程序。该应用程序具有以下功能: 包含数字按钮(0-9)、操作符按钮(、-、*、/)、等于按钮()和清除按…

大模型提示词初探

大模型提示词初探 在与大模型交互的过程中,提示词起着至关重要的作用,它犹如给模型下达的精准任务指令,直接影响着模型生成内容的准确性、高效性与合理性。合理运用提示词,能够有效减少模型出现错误和幻觉的情况,从而…

Navicat 连接 SQL Server 详尽指南

Navicat 是一款功能强大的数据库管理工具,它提供了直观的图形界面,使用户能够轻松地管理和操作各种类型的数据库,包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库,包括安装设置、连接配置、常见问题排…

【Linux】进程间通信-> 共享内存

共享内存原理 在C语言/C中,malloc也可以在物理内存申请空间,将申请的物理内存空间通过页表映射到进程地址空间,将内存空间的起始地址(虚拟地址)返回,进而进程可以使用虚拟地址通过页表映射到物理内存的方式…

高仿CSDN编辑器,前端博客模板

高仿CSDN编辑器纯前端模板,使用的js、html、vue、axios等技术,网络请求库已进行封装,可以按需调整界面,需要源码联系(4k左右)。 1.支持代码高亮 2.支持目录点击定位 3.支持文件上传、图片上传(需要自己写后端接口) 4.M…

国产低代码框架zdppy开发笔记002 标准的接口响应

前言 通过前面的学习, 我们已经知道了zdppy_api和zdppy_req的基本用法, 接下来我们会在学习中多次用到这两个框架. 我们已经知道了该如何响应一个字符串,但是我们该如何响应json数据呢? 在zdppy_api中,我们定义了一组规范的API响应, 我们慢慢来看看. 规范的响应 首先来看…

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

牛客周赛 Round 74

D. 预知 题目链接 题意有点绕,简单来说是其中一堆牌,问最少预知几张才能保证任取两张都不会导致种类重复。一开始对每张牌种类不是已知的,已知的是每种牌的牌数。 思路就是相当于把其中一种明牌,保证任取两张都不会导致种类重复…

【linux学习指南】SIGCHLD信号

文章目录 📝SIGCHLD信号🚩总结 📝SIGCHLD信号 进程⼀章讲过⽤wait和waitpid函数清理僵⼫进程,⽗进程可以阻塞等待⼦进程结束,也可以⾮阻塞地查询是否有⼦进程结束等待清理(也就是轮询的⽅式)。采⽤第⼀种⽅式,⽗进程阻塞了就不能处理⾃⼰的⼯…

AI助力SEO优化的关键词策略解析

内容概要 在数字营销的快速发展中,人工智能(AI)正逐步成为提升搜索引擎优化(SEO)效果的重要工具。关键词策略是SEO成功的关键要素之一,而AI技术的应用使得这一过程更加高效和精准。在关键词研究中&#xf…

PHP-Casbin v4.0.0 发布,支持 ACL、RBAC、ABAC 等模型的访问控制框架

PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架,支持 ACL、RBAC、ABAC 多种模型。它采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 更新内容: http…

解决Git中没有小绿勾与红叉叉的问题

一、检查自己的软件 必须安装Git和Tortoisegit(也就是俗称的小乌龟)这两个软件。 Git的下载地址: CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgit-for-windows/ 寻找与自己电脑相配的软件版本就可以了。 Tor…

搭建跨境电商企业博客的指南

在跨境电商领域,企业博客不仅是展示品牌形象的窗口,也是连接全球客户的重要桥梁。一个精心搭建的企业博客能够提升品牌知名度、增强客户信任,并促进销售。 搭建企业博客的必要性 1. 建立品牌权威:通过高质量的内容,企…

渗透学习笔记(十一)Burp Suite 总结

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

课设CLion连接Ubuntu14makeQt项目出错解决汇总

在这之前需要注意以下几点: 1、需要 确保CLion能连接Ubuntu14 2、cmakelist.txt文件配置 3、知道部署路径: 问题一:/usr/bin/ld: cannot open output file GreedySnake: Is a directory 否则就会出现make以后应该生成一个可执行文件&…

【GO基础学习】gin的使用

文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则,执行的函数// gin.Context&#x…

磁编码器(Magnetic Encoder)

磁编码器(Magnetic Encoder)是一种传感器,它通过检测磁性材料的磁场变化来测量旋转或线性位置。编写用于读取磁编码器数据的C语言程序时,您需要根据具体的硬件接口和编码器类型进行调整。以下是一个基本的框架,假设我们…

Qt Creator项目构建配置说明

QT安装好之后,在安装目录的Tools\QtCreator\bin下找到qtcreator.exe文件并双击打开 点击文件-新建文件或项目 选择Qt Widgets Application 设置项目名称以及路径 make工具选择qmake(cmake还未尝试过) 设置主界面对应类的名称、父类&#…

智能边缘计算×软硬件一体化:开启全场景效能革命新征程(企业开发者作品)

边缘智能技术快速迭代,并与行业深度融合。它正重塑产业格局,催生新产品、新体验,带动终端需求增长。为促进边缘智能技术的进步与发展,拓展开发者的思路与能力,挖掘边缘智能应用的创新与潜能,高通技术公司联…