
OpenCV与数字图像处理
文章平均质量分 90
图形图像、数值计算、人工智能、甚至并行计算,是未来新时代领域里高级IT人才所需具备的全部知识和能力,你如果希望能够明白我这里说的内容,需要一点数学基础,一点联想能力,还要有啃下厚厚书本的毅力,最重要的还是要有自己动手的动力!
打码的老程
我是写代码写到吐了的算法工程师,平时爱好读书,种菜,人生最大的追求是希望退休那一天,能买到一块地,遛着哈士奇,开着拖拉机。
展开
-
数字图像学笔记 —— 19.肤色检测
在没有AI之前,肤色检测是计算机视觉的一项常见任务。其根本思路是划定一个颜色区域,只要属于该颜色区域的像素就认为属于肤色。但是这种方法的精确度不高,并且常常有错误的区域被误认为皮肤。尽管AI或者机器学习已经能够很好的从图片中识别出肤色部分。但是作为经典图像学任务,我想了想还是花点时间介绍肤色的常见识别算法。因此,在本文中我们介绍其中一种方法,将RGB图像转换到HSV色彩空间,然后在HSV空间中设置适当的阈值以检测肤色。《数字图像学笔记——1. 常用颜色空间转换》原创 2023-07-17 22:37:23 · 818 阅读 · 0 评论 -
数字图像学笔记 —— 18. 图像抖动算法
当图像的颜色深度较低,即每个像素可以表示的颜色数量有限时,图像的颜色表现力会受到限制,这可能会导致严重的颜色带状现象(banding)和颜色失真。例如,当前像素的右边像素将接收 7/16 的误差,下面一行的左边、中间和右边的像素分别接收 3/16、5/16 和 1/16 的误差。遍历图像的每个像素:对于图像中的每个像素,算法都会尝试找到最接近该像素颜色的颜色,然后将该像素颜色设置为该颜色。通过这种方式,抖动算法能够在颜色或灰度级别受限的情况下,模拟出更多的颜色或灰度等级,从而提高图像的视觉质量。原创 2023-05-30 23:35:49 · 5594 阅读 · 0 评论 -
数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)
总之,约束最小二乘方滤波是一种非常强大的图像修复技术,它可以通过仅依赖于均值和方差的约束条件来估计未知的退化函数,并从退化的图像中恢复出尽可能接近原始图像的图像。对于上述图片来说,存在很明显的退化,而且我们也没有办法回到过去拍一张高清的照片,所以要想让照片得到修复,获得较好的视觉感受,维纳滤波在这里就无法使用了。维纳滤波(Wiener Filter),虽然是一种非常强大的退化图像还原算法,但是从实验过程我们也发现它存在着致命的缺陷,那就是要求输入退化系统的。,这是因为退化函数的总能量应该保持不变。原创 2023-03-05 16:10:00 · 1806 阅读 · 0 评论 -
数字图像学笔记 —— 16. 图像退化与复原(自适应滤波之「最小均方差滤波」)
文章目录图像恢复的一般运算过程什么是「最小均方差滤波」实现步骤实现代码最后的结果图像恢复的一般运算过程我们从前几章的基本理论出发,退化信号恢复成原始信号的步骤,可以概括成两步基本公式。对于空间来说,有如下公式{g(x,y)=h(x,y)⊙f(x,y)+η(x,y)f^(x,y)=ω(x,y)∗g(x,y)−η(x,y)\left \{ \begin{matrix} g(x, y) = h(x, y) \odot f(x, y) + \eta(x, y) \\\hat f(x, y) = \ome原创 2021-11-23 20:49:00 · 3001 阅读 · 0 评论 -
数字图像学笔记——15. 图像退化与复原(使用逆滤波复原图像)
文章目录对湍流的逆滤波我们在图像退化的相关章节里已经介绍过,如果已知退化函数 H(u,v)H(u, v)H(u,v) 我们可以通过逆滤波的方式来恢复图像。即,对于退化图像 G(u,v)G(u, v)G(u,v) 来说,可以通过以下方式得到复原图像 F^(u,v)\hat{F} (u, v)F^(u,v)F^(u,v)=G(u,v)H(u,v)\hat{F}(u, v) = \frac{G(u, v)}{H(u, v)}F^(u,v)=H(u,v)G(u,v)这个过程有个统一的称呼——逆滤波,不过原创 2021-11-07 23:27:26 · 1898 阅读 · 0 评论 -
数字图像学笔记——14. 图像退化与复原(线性退化)
文章目录非线性退化模糊退化环境退化运动退化随机噪声退化我们在前面探讨了空间、频域的噪音,以及噪音函数的估计与建模后,现在稍微多花一点时间来总结一下常见的4种退化模型分类。线性移动降质散焦降质高斯降质离焦模糊大气扰动非线性退化模糊退化环境退化运动退化随机噪声退化...原创 2021-10-29 16:05:32 · 1955 阅读 · 1 评论 -
数字图像学笔记——13. 图像退化与复原(退化函数的评估方法:观察法、实验法、数学建模法与湍流导致的退化)
在上一章内容[数字图像学笔记] 8.噪音函数对图像退化的影响[数字图像学笔记] 5.噪音生成——椒盐噪音、高斯噪音、泊松噪音(一)[数字图像学笔记] 5.噪音生成——泊松噪音(二)[数字图像学笔记] 6.几种常见的空间滤波器(均值滤波器、中值滤波器)[数字图像学笔记] 6.几种常见的空间滤波器(锐化滤波)...原创 2021-10-22 23:07:05 · 5095 阅读 · 0 评论 -
数字图像学笔记——12. 图像退化与复原(频域噪音函数对图像的影响、以及什么是陷滤波器)
聊完了空间噪音对函数的一般影响后,我们需要来聊一聊由于频域上的噪音对图像的影响了。文章目录频率噪音产生的原因频率噪音产生的原因当我们的视觉采集设备从传统的化学方法(卤化银显影法)变成了后来的数码(CMOS)设备后,由于CMOS作为一种场效应晶体管的原因,所以会受到温度、湿度、磁场环境的影响。所以在我们的采集设备都变成了数码设备后,由于电子产品的通病,所以才开始有了频域上的噪音。...原创 2021-10-04 16:51:43 · 1012 阅读 · 0 评论 -
数字图像学笔记——11. 图像退化与复原(空间噪音函数对图像的影响)
文章目录噪音生成高斯噪音函数瑞利噪音函数噪音生成图像的复原与重建也是图像学领域的重要技术,除了可以用于老照片的恢复外,也可以用于图像信号的增强与去噪。在前面的章节中,虽然已经介绍过三种比较常见的噪音,与其生成方法。但是在我们进行这方面的研究中,有时候也会使用一些其他噪音生成方法。在老爷子的教科书里提到了大概以下6种不同的噪音信号1:尽管从我个人的经验看还有一些不是很常见的噪音,不过这6种主要的噪音类型已经足以涵盖我们认知的绝大部分类型了。如果对于噪音怎么生成不是很理解的朋友,可以看看我前面的文章原创 2021-04-19 14:33:07 · 944 阅读 · 0 评论 -
数字图像学笔记——10. 频域与傅里叶分析方法
频域滤波技术,目前主要使用的有两种类型,一种是傅立叶变换技术,还有一种是小波分析。基本逻辑就是把原始信号映射到频率空间中,使得在时域空间无法处理的信号,得以在另外一种空间体系下能够被较有效的处理。目前,我已经完成了全部的傅立叶分析的科普性的文章,所以在这个系列里我就不再赘述这方面的基础知识,我会在这下面贴出这些文章的链接,你可以根据自己的需要去查阅对应的章节,如果想直接了解如何实现一个一维傅立叶FFT与iFFT算法的朋友,直接从6、7、8三个章节看就行了。《漫谈傅里叶1——从无穷级数到傅里叶》.原创 2021-03-15 23:31:20 · 963 阅读 · 4 评论 -
数字图像学笔记——9. 几种常见的空间滤波器(锐化滤波)
在上一章内容中,介绍了两种比较常用,而且简单的滤波器;在这一章里,要引入一个比较复杂的滤波器——锐化滤波。要弄懂锐化滤波需要先弄懂梯度、以及拉普拉斯算子,由于我已经在其他文章里介绍过了,所以在这里我不过多赘述,需要的朋友可以点开下面的连接……《梯度、散度与拉普拉斯算子》文章目录锐化滤波器背后的数学知识锐化空间计算公式拉普拉斯算子与图像边界锐化滤波锐化滤波改进型改进方法一改进方法二首先我们要理解一个概念,如果把一张图片的灰度信息当作平面的高度信息,那么当颜色出现变动的时候,就产生了类似梯度一样的概念.原创 2021-03-06 00:09:31 · 6561 阅读 · 0 评论 -
数字图像学笔记——8. 几种常见的空间滤波器(均值滤波器、中值滤波器)
在上一章里,简要的介绍了空间滤波器,在这一章节中将实现几种常见的空间滤波器函数。文章目录什么是滤波空间滤波(Spatial Filtering)均值滤波器(Mean Filter)中值滤波器(Median Filter)什么是滤波滤波的概念主要出自信号学领域,指的是过滤我们不感兴趣的信号频段。最早使用滤波技术的,应该最早出自无线电领域,通过可调电容来完成滤波。大家比较熟悉的一种物理滤波应用,就是收音机了,学习数字图像领域的朋友倒是不太需要了解电容对于信号的滤波作用,所以这里也不必过多的展开。空间滤波原创 2021-03-04 21:44:49 · 7301 阅读 · 2 评论 -
数字图像学笔记——7. 噪音生成(泊松噪音生成方法)
文章目录泊松噪音Knuth算法散列生成算法生成泊松噪音的图像泊松噪音Knuth算法首先,回顾泊松分布的函数:P(x=k)=e−λλkk!P(x=k) = \frac{e^{- \lambda} \lambda ^ k}{k!}P(x=k)=k!e−λλk其中,λ\lambdaλ是期望值,而e−λe^{-\lambda}e−λ则是单调递减的指数函数,而我们所需要关心的函数区间是∈[0,∞]\in[0, \infty]∈[0,∞], 而观察函数图像,等效于一半指数函数axa^xax,其中0<原创 2021-02-03 02:41:45 · 9318 阅读 · 5 评论 -
数字图像学笔记——6. 噪音生成(椒盐噪音、高斯噪音、泊松噪音)
文章目录空间滤波(Spatial Filtering)空间滤波(Spatial Filtering)如果我们让这个分段函数中的一部分F(xm)=0F(x_m) = 0F(xm)=0,那么我们可以得到空间滤波函数。通常空间滤波函数可以用来做什么,比如说在医学上拍了X光后,我们需要检查特定部分的数据时,就可以利用到空间滤波。与空间滤波相对应的,还有频域滤波(频率滤波Frequency Filtering),时域滤波(Time Filtering)函数。虽然都是信号学的领域范畴,但广泛应用在计算机图形图原创 2021-02-02 22:27:55 · 38184 阅读 · 9 评论 -
数字图像学笔记——5. 直方图变换、局部变换、灰度分级、比特分层
文章目录接上次《[数字图像学笔记] 4.直方图变换1》所提到的直方图的变换方法,原创 2020-12-07 22:44:45 · 1290 阅读 · 0 评论 -
数字图像学笔记——4. 直方图计算、线性变换、对数变换、Gamma变换
文章目录线性映射:既然之前提到了将彩色照片,以光通量的方式,转换为黑白的;那么我们也可以把一张黑白照片,近似的转换为彩色的。当然,这里有一些前提条件,比如说,照片不能过曝、也不能过暗,灰度适中的会呈现出最好的效果。至于有人可能会提到用神经网络,那主要是用于修复老照片、或者细节缺失严重的视频资料,以及一些无法用映射法有效转换的照片(即这类照片的映射需要运用到一些非线性采样方程,而方程的函数和参数我们未知)。而通常情况下,仅仅依靠线性方程便能很大程度上满足我们的需要。线性映射:首先,需要明确一点,所有将原创 2020-11-28 21:34:38 · 3111 阅读 · 0 评论 -
数字图像学笔记——3.彩色转黑白
文章目录示例代码简介示例代码本系列的全部程序的示例代码都可以在 https://github.com/seagochen/CV_AI_Algorithms.git 找到, 目前只上传了一部分, 随着这个系列的完成, 我会同步更新还没有上传的部分.你可以关注一波, 比如面试图像方面的岗位时, 又或者学习《数字图像处理》课程时, 把代码都跑一遍. 需要说明一下, 代码都是Python写的, 我懒得用C/C++, 主要的函数C++ 版本和Python是一致的. 所以在理解了程序逻辑后, 很容易用C/C++复原创 2020-11-26 20:29:11 · 1669 阅读 · 0 评论 -
数字图像学笔记——2. 图像的一些基础操作
文章目录简要说明关于代码关于CV的空间系基础操作1: 通道分离基础操作2: 通道合并基础操作3: 图像拼接基础操作4: 图像剪切基础操作5: 图像旋转绕原点的二维旋转矩阵绕X轴旋转的三维旋转矩阵绕Y轴旋转的三维旋转矩阵绕Z轴旋转的三维旋转矩阵基础操作6: 图片变形简要说明关于代码为了方便研究和演示, 这里的代码主要用使用了Python, 相关的API调用, 尽管Python和C/CPP有一定差别, 但由于底层调用的代码结构基本一致, 所以在了解了Python代码的原理和机制后, 也是可以容易迁移到C/原创 2020-08-05 01:59:02 · 620 阅读 · 0 评论 -
数字图像学笔记——1. 常用颜色空间转换
文章目录常用颜色空间1. RGB颜色空间2. CMY/CMYK颜色空间3. HSL/HSI/HSV/HSB颜色空间4. Lab颜色空间5. YUV/YCbCr 颜色空间使用OpenCV对颜色空间进行转化常用颜色空间1. RGB颜色空间这是一种由发光元件(例如显示器)所定义的颜色空间, 包含最基本的三原色(红, 绿, 蓝). 生活中所接触到的图像, 大部分由RGB空间表示. 它的一个缺点就是把色调、亮度、饱和度糅合在了一起. 在某一些领域, 例如科学研究、制图绘图等不常采用.2. CMY/CMYK原创 2020-08-01 15:50:54 · 1472 阅读 · 0 评论