图像基础

  

  • 图像二值化:是指将图像中的每个像素点的灰度值转换为两个可能的值之一,通常为0(黑色)或255(白色)
  • 图像归一化:是为了调整图像的亮度和对比度,使得图像的数据分布符合特定的要求,例如将像素值缩放到 [0, 1] 或者 [-1, 1] 的范围(比如除255,变成小数 0.2333)。这有助于减少光照条件的影响,提高不同图像之间的可比性,并且可以使某些算法的表现更加稳定, 

 

  • 像素宽度:指的是图像实际的宽度,以像素为单位。例如,一个720x720的图像,其像素宽度是720
  • 行宽度(stride):指的是每行图像数据在内存中占用的字节数。它可能大于或等于像素宽度乘以每个像素的字节数,具体取决于图像格式和对齐要求
    • 对于单通道图像(如灰度图),stride通常是图像宽度乘以每个像素的字节数。例如,对于一个720x720的灰度图,每个像素占1个字节,那么stride就是720字节
    • 假设你有一个720x720的YUV420P图像,每个像素平均占1.5个字节。Y平面的stride是720字节(因为每个Y像素占1个字节),而U和V平面的stride是720 / 2 = 360字节(因为U和V每个分量共享4个像素)// 注意每个平面不一样
    • 如果你有一个720x720的RGB图像,每个像素占3个字节,且要求4字节对齐,那么stride将是720 * 3 = 2160字节,因为它已经是4的倍数,不需要额外填充

 

 

算子:

OpenAI算子是OpenAI API中提供的一种函数,它用于对文本或图像进行操作,如文本生成、文本分类、图像生成等。这些算子可以基于预训练的模型,通过调用API接口来执行特定的任务。


OpenCV算子是指OpenCV库中提供的一系列用于图像处理的函数和算法。这些算子可以对图像进行各种操作,如滤波、边缘检测、特征提取等。
例如,Sobel算子是一种用于边缘检测的算子,它可以提取图像的一阶梯度信息,用于识别图像中的边缘。其他的算子如Laplacian、Canny等也有各自的特点和应用场景。
在使用OpenCV算子时,通常需要指定相应的参数,以控制算子的行为。不同的算子可能需要不同的参数,因此在使用时需要根据具体情况进行设置。

 

1. 向量: 有大小有方向(比如带箭头的线段, 箭头所指代表方向,线段长度代表大小)

  图片数据通常以向量的形式保存并进行处理。向量将图片分解成一个个像素,向量元素记录着各个像素点的颜色信息,所以这个向量表达的是图片色彩的分布,反过来根据向量包含的信息也能渲染出对应的图片

  黑白图片(灰度图)通过2维向量(矩阵)来表达。2个维度的长度分别代表了图片的高度和宽度(以像素为单位),向量元素记录着每一个像素的灰度(数值越大,颜色越浅)

   彩色图片通过3维向量来表达。3个维度的长度分别代表了图片的高度、高度(以像素为单位)和通道数。在RGB模式下,彩色图片有3个通道,保存着图片各个像素红色(Red)、绿色(Green)和蓝色(Blue)的量化数值

2.数量(标量) :只有大小,没有方向

 

========================================================  1

 

1和2用到卷积核的地方,最好都声明卷积核的width和height都为正奇数,否则卷积核中心与原图像中心点难以对齐,造成不对称。

1.图像形态学操作
a.膨胀:在规定的卷积核中取最大值代替原图像的中心点,目的是扩大较明亮物体的边界。(卷积核取最大值)

b.腐蚀:在规定的卷积核中取最小值代替原图像的中心点,目的是缩小较明亮物体的边界。(卷积核取最小值)

c.开运算: 先腐蚀,再膨胀。腐蚀操作去除物体边界的毛刺,膨胀操作恢复已经被腐蚀操作缩小过的物体边界。(因为腐蚀的话是把图像的所有部分都腐蚀了(取最小值变暗),所以完了我们要把主体部分膨胀还原)
  应用: 去除物体边界的毛刺

d. 闭运算: 先膨胀,再腐蚀。膨胀操作去除物体内部的黑点(洞),腐蚀操作缩小已经被膨胀操作扩大的物体边界。(因为膨胀的话是把图像的所有部分都膨胀了(取最大值变亮),所以完了我们要把主体部分腐蚀还原)

e.基本梯度:经过膨胀后的图像减去经过腐蚀后的图像
  应用: 提取物体的边界

2.图像模糊处理(blur,滤波)
a.均值滤波:取原图像中心点的值为卷积核范围内的均值。或者用卷积的语言说:原图像中心点的值变为原图像与矩阵中每个元素都是 1/(width*height)的卷积核的卷积。(卷积核取均值)

b.中值滤波:取原图像中心点的值为卷积核范围内的像素值的中位数。(卷积核取中值)
应用: 去除椒盐噪声。在图像的某些像素点采样时,可能由于外界噪声导致某些像素点过敏或过暗,就像盐粒或胡椒粉一样的颜色,称为椒盐噪声。(但要求卷积核的尺寸大于椒盐粒的尺寸)

c.高斯滤波:卷积核其实就是一种权重,而在均值滤波中,卷积核内的像素点的权重都相同**。而高斯滤波考虑了空间因素,以像素点中心为二维高斯分布的中心,卷积核内的取值按高斯分布减小。**高斯分布考虑了空间信息,因此对部分解决了均值滤波损失了物体边界信息的缺陷。(卷积核根据权重相乘取值(权重相加为1 所以超不出255))

d.双边滤波:同时考虑空间因素和像素因素。有空域核,值域核两个卷积核。(卷积核根据权重相乘取值(权重相加为1 所以超不出255),同时考虑差值(也就是边缘),如果超过多少那这部分就保留)


空域核:元素取值是空间位置的高斯函数。
值域核:当周围像素与中心像素的像素值差距过大时,就不把此像素计算在内。

 

======================================================== 2

 

A是线性空间 V 的一个线性变换,A的全体像组成的集合称为 A 的值域,用 AV 表示. 所有被A变成零向量的向量组成的集合称为 A 的核,用A−1(0) 表示.

1.值域:某个空间中所有向量经过变换矩阵后形成的向量的集合,通常用R(A)来表示

2.核:所有经过变换矩阵后变成了零向量的向量组成的集合,通常用Ker(A)来表示。

 

======================================================== 3

 

傅立叶变换是实现从空域或时域到频域的转换工具

1. 空间域(spatial domain): 也叫空域,即所说的像素域,在空域的处理就是在像素级的处理,如在像素级的图像叠加。或者说就是描述像素空间分布的信息,经过傅立叶变换可以得到频率域

2.频率域(frequency domain): 任何一个波形都可以分解成多个正弦波之和。每个正弦波都有自己的频率和振幅。所以任意一个波形信号有自己的频率和振幅的集合。频率域就是空间域经过傅立叶变换的信号 

3.时域(时间域):自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)是描述信号在不同时刻取值的函数。

 


__EOF__

本文作者封兴旺
本文链接https://www.cnblogs.com/fxw1/p/16883408.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   封兴旺  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-11-12 C中调用C++

联系方式: 18274305123(微信同号)

点击右上角即可分享
微信分享提示