图像处理
文章平均质量分 78
armwind
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
openISP学习15-BCC — Brightness/Contrast Control(亮度/对比度控制)
本文介绍了亮度对比度调整算法的原理及实现。该算法通过线性变换公式output = input × (1 + contrast) + brightness - 127 × contrast对图像进行全局调整:亮度参数控制整体明暗,对比度参数强化/减弱明暗差异。代码实现采用int16类型防溢出,并通过clipping限制输出范围。测试显示,亮度调整可使图像整体变亮/暗,对比度增强则使亮区更亮、暗区更暗,效果符合预期。典型参数为brightness∈[-255,255]、contrast∈[-1,4](需除以32原创 2026-06-12 22:34:20 · 209 阅读 · 0 评论 -
openISP学习14-HSC — Hue/Saturation Control(色调/饱和度控制)
本文介绍了YUV色彩空间中的色调旋转和饱和度控制原理及实现。在YUV空间中,色调旋转对应UV平面向量旋转,饱和度控制对应UV向量长度缩放。文章给出了RGB与YUV的转换公式,并推导了色调旋转和饱和度调整的数学表达式。代码实现部分展示了使用预计算查找表进行高效运算的方法,修复了原代码中旋转后未除256的定点数处理错误,并新增了单独返回旋转效果的输出。测试代码通过生成UV渐变图像,验证了算法效果:左图显示原始UV图像,中图展示45度色调旋转结果,右图为饱和度增强1.5倍的效果。典型参数设置为色调128度、饱和度原创 2026-06-12 21:32:57 · 206 阅读 · 0 评论 -
openISP学习13-FCS — False Color Suppression(假彩色抑制)
文章摘要 本文介绍了抑制伪彩色(False Color Suppression, FCS)算法的原理与实现。FCS通过检测图像边缘区域(edgemap)动态调整色度(UV)的饱和度,在平坦区域保留色彩,在强边缘区域降低色度增益以减少伪彩色条纹。算法采用分段处理:边缘值低于阈值时保持原色度,超过最大阈值时完全去色,中间过渡区线性衰减。实现中关键参数包括边缘阈值、增益系数等,并通过Python代码展示了具体计算过程。测试案例验证了算法对不同边缘强度区域的色度调整效果,最终通过YUV420转换直观对比处理前后的色原创 2026-06-12 18:16:55 · 190 阅读 · 0 评论 -
openISP学习12-EE — Edge Enhancement(边缘增强)
本文介绍了一种基于类拉普拉斯算子的边缘增强算法。该算法通过3×5滤波器提取图像边缘响应,利用双阈值非线性增益函数(emlut)抑制噪声并增强显著边缘。处理流程包括:原图→边缘检测→非线性增益→叠加增强。核心参数包括滤波器矩阵、强弱边缘的增益系数和阈值范围。测试代码展示了阶跃边缘图像的增强效果,验证了算法在边界区域能产生明显的非零响应。最终输出为原图与增强边缘的叠加,有效提升了图像边缘的锐利度。算法通过卷积运算和阈值控制实现了对图像边缘的选择性增强。原创 2026-06-12 14:29:48 · 265 阅读 · 0 评论 -
openISP学习11-BNF — Bilateral Noise Filtering(双边滤波降噪)
双边滤波算法结合空间距离和像素值相似性进行加权处理,在平滑噪声的同时保留边缘。其核心权重公式为空间高斯权重与像素差值权重的乘积,实现"离得近且长得像"的像素才具有显著影响力。算法采用5×5邻域窗口,通过双重循环计算每个像素的值域差,并根据阈值分配不同权重。测试结果表明,该算法能有效平滑随机噪声图像,但对真实图像可能过度模糊细节。OpenISP中的实现包含空间权重矩阵(dw)和4级值域权重(rw)等关键参数,最终输出为邻域像素的加权平均值。原创 2026-06-12 11:56:18 · 264 阅读 · 0 评论 -
openISP学习10-NLM — Non-Local Means Denoising(非局部均值降噪)
摘要 非局部均值(NLM)算法是一种基于图像自相似性的降噪方法,通过搜索窗口内相似像素块的加权平均实现去噪。其核心公式为NLM(x)=Σw(x,y)×I(y)/Σw(x,y),其中权重w(x,y)由像素块间欧式距离决定,采用指数衰减函数计算。算法在YUV空间的Y通道或灰度图上应用时计算较为简单。实现时需注意:(1)搜索窗口(2Ds+1)^2和邻域块(2ds+1)^2的关系;(2)通过wmax技巧保留中心像素最大权重;(3)参数h控制平滑强度。测试表明,该算法能有效降低高斯噪声,但对均匀图像处理前后无变化,且原创 2026-06-12 09:57:29 · 244 阅读 · 0 评论 -
openISP学习9-CSC-Color Space Conversion(色彩空间转换)
本文介绍了RGB到YUV色彩空间转换的原理和Python实现,重点使用BT.601标准公式。YUV色彩空间中Y代表亮度,U/V表示色度。文章给出了转换矩阵公式,并通过NumPy实现了高效向量化计算,包含防溢出处理(使用uint32中间类型)和结果规范化(除以1024)。测试验证了纯灰图像的色度中性(Cb/Cr≈128)和白点亮度值(Y≈217),证实了算法的正确性。该转换可用于图像处理中的亮度和色度分离操作。原创 2026-06-08 23:11:11 · 309 阅读 · 0 评论 -
openISP学习8-GC — Gamma Correction(Gamma 校正)
摘要: Gamma校正是图像处理中的关键非线性操作,用于适配传感器线性响应与人眼非线性感知(对暗部更敏感)。其原理通过幂函数output = (input/maxval)^γ × maxval将线性图像映射至感知均匀空间(γ=0.5时图像更亮,γ=2时更暗)。算法实现采用查找表(LUT)预计算映射值,支持RGB/YUV模式,逐像素查表优化效率。测试显示,去除输出归一化(/4操作)后,γ=0.5的校正效果符合预期(图像显著变亮),验证了算法的正确性。该技术有效解决了设备与人眼间的信号差异,提升图像显示的自然度原创 2026-06-08 22:43:02 · 212 阅读 · 0 评论 -
openISP学习7-CCM — Color Correction Matrix(色彩校正矩阵)
本文介绍了色彩校正矩阵(CCM)的原理与实现。CCM通过3×4矩阵变换将相机RGB转换至标准色彩空间,修正光谱响应差异。算法采用1024倍定点数(Q10格式)存储系数,包含3×3线性变换和3个偏移项。测试部分验证了三种场景:1)单位矩阵保持颜色不变;2)偏移项正确影响各通道;3)非对角项实现通道间色彩转换。实验通过构建特定测试图像,对比处理前后效果,直观展示了CCM对色彩的重映射作用。该实现逐像素计算,支持8位RGB输出,可用于相机图像处理流水线中的色彩校正环节。原创 2026-06-08 00:05:49 · 324 阅读 · 0 评论 -
openISP学习6-CFA -Color Filter Array Interpolation(去马赛克)
本文介绍了基于Malvar-He-Cutler算法的去马赛克技术,该算法通过梯度修正的双线性插值从Bayer阵列恢复RGB图像。算法针对不同颜色位置(R、Gr、Gb、B)采用特定的5×5卷积核进行插值:在R位置通过十字方向插值G、对角插值B;在Gr/Gb位置分别沿水平和垂直方向插值R/B。文章给出了Python实现关键代码,包括边界填充、数值精度处理和分块处理流程,最终输出裁剪至指定范围的RGB图像。该方法有效减少了伪彩色现象,是经典的实时去马赛克解决方案。原创 2026-06-06 23:51:16 · 172 阅读 · 0 评论 -
openISP学习5-CNF — Chroma Noise Filtering(Bayer 域色度噪声滤波)
本文介绍了一种针对Bayer域图像的色度噪声滤波算法(CNF)。该算法直接在去马赛克前处理原始Bayer数据,通过噪声检测(CND)和噪声校正(CNC)两个步骤消除R/B通道的色度噪声。检测阶段在8×8邻域内计算绿色像素和同色像素的均值,当像素值异常偏高时判定为噪声。校正阶段采用自适应策略,根据AWB增益和亮度调整修正强度,在保留高亮细节的同时有效抑制色度噪声。算法仅处理R/B通道,对G通道直接保留,并通过反射填充处理边界像素。实验表明该方法能有效改善图像质量,为后续处理提供更干净的Bayer数据。原创 2026-06-06 22:08:20 · 189 阅读 · 0 评论 -
openISP学习4-AWB(自动白平衡增益控制)
本文介绍了自动白平衡(AWB)算法的基本原理与实现。AWB通过调整各颜色通道增益系数来消除不同光源导致的色偏,使白色物体在图像中呈现真实白色。文章详细讲解了AWB算法的数学公式和Python实现代码,包括对不同Bayer模式的增益处理。测试部分展示了在不同增益参数下的图像效果变化。最后,文章说明了实际平台中AWB调参(tuning)的方法:在标准灯箱下使用灰卡或色卡拍摄,通过计算R/G和B/G比值确定参考点,进而估计场景色温,并介绍了全局增益和基于ROI的白平衡两种计算方式。原创 2026-06-06 18:39:16 · 198 阅读 · 0 评论 -
openISP学习3-AAF— Anti-Aliasing Filter(抗混叠滤波)
摘要: AAF(抗混叠滤波)是一种用于Bayer RAW图像去马赛克前的预处理技术,旨在抑制高频信号混叠导致的伪彩色问题。其核心原理是通过低通滤波器(5×5核,同色像素加权平均)主动模糊超出传感器奈奎斯特频率的细密纹理(如格子衫、百叶窗),避免算法因采样不足产生颜色失真。滤波器设计需保证仅对同色像素操作(偶数位置系数为0),避免通道间混叠。Python实现中利用scipy.ndimage.correlate高效完成卷积,测试显示AAF能有效平滑图像噪声(方差减小)。虽然牺牲部分锐度,但显著提升了颜色还原的准原创 2026-06-06 15:53:54 · 330 阅读 · 0 评论 -
openISP学习2-DPC(黑电平补偿)和BLC(黑电平补偿)
本文介绍了坏点校正(DPC)算法,用于修复图像传感器中的异常像素。算法通过比较待检测像素与4x4邻域内同色像素的差值来识别坏点,提供两种修复模式:mean模式取4个直接邻居的均值替换坏点;gradient模式则计算4个方向的梯度,选取最小梯度方向的两邻均值进行替换。文章给出了DPC算法的Python实现代码,并通过测试案例展示了两种模式对人工构造的坏点(中心像素值为0)的修复效果,mean模式使坏点恢复为周围均值,gradient模式则根据最小梯度方向进行修复。测试结果验证了算法的有效性,能有效消除图像中的原创 2026-06-06 14:52:29 · 224 阅读 · 0 评论 -
openISP学习1-openISP介绍
OpenISP是一个开源图像信号处理器(ISP)项目,支持RAW、RGB、YUV等色彩空间的转换和处理。文章首先介绍了常见的图像色彩空间,包括Bayer阵列(如RGGB)、RGB和YUV,并解释了它们之间的转换原理(如Demosaic去马赛克、色度下采样等)。随后详细解析了OpenISP的处理流程(Pipeline),涵盖从RAW域预处理(DPC、BLC)、RGB域处理(CCM、Gamma校正)到YUV域后处理(降噪、边缘增强)的完整链路。文章还对比了实际案例(森云星光相机)的ISP技术,补充了LDC、3A原创 2026-06-06 10:19:28 · 256 阅读 · 0 评论 -
数字图像处理-13-图像频域变换数学基础之快速傅里叶变换
本文介绍了快速傅里叶变换(FFT)及其逆变换(IFFT)的Python实现方法,包括一维和二维情况,并简要说明了一维离散余弦变换(DCT)的原理。 主要内容: 一维FFT实现:基于Cooley-Tukey时域抽取算法,通过位倒序排列和分治策略将复杂度降至O(N log N) 一维IFFT实现:利用共轭对称性,通过调用正向FFT实现逆变换 二维FFT实现:利用可分离性,通过行列方向分别进行一维FFT实现 二维IFFT实现:类似二维FFT,行列方向分别进行一维IFFT 一维DCT原理:通过余弦基函数展开实数信号原创 2026-05-31 16:04:56 · 251 阅读 · 0 评论 -
数字图像处理-12-图像频域变换数学基础之各种傅里叶变换
本文介绍了傅里叶变换的基本概念和应用,重点探讨了离散傅里叶变换(DFT)及其高效实现方法——快速傅里叶变换(FFT)。作者通过Python示例展示了如何将三种不同频率的信号叠加后进行FFT分析,成功分离出原始频率成分。文章详细推导了N=8时的FFT计算过程,阐述了FFT"分而治之"的核心思想,即将复杂DFT分解为多个简单计算单元的组合。虽然傅里叶变换原理复杂,但作者强调实际应用中掌握其使用方法更为重要,特别是FFT在数字信号处理中的高效性能使其成为重要工具。原创 2026-05-31 14:03:52 · 210 阅读 · 0 评论 -
数字图像处理-11-图像的一些合成操作
本文介绍了三种图像合成方法:加法、减法和与运算。加法合成通过像素值相加实现亮度叠加,适用于多曝光融合;减法合成提取两图差异,可用于背景去除;与运算通过二值化后逻辑与操作保留共同亮区域,常用于图像掩膜处理。每种方法均提供Python实现代码,支持8位灰度和24位彩色图像处理,并包含效果说明和示例图。原创 2026-05-26 21:27:20 · 430 阅读 · 0 评论 -
数字图像处理-10-图像的细化(Zhang-Suen ),粗化以及骨架变换
Zhang-Suen算法是一种经典的图像骨架提取技术,通过迭代删除边界像素将二值图像细化为单像素宽度的骨架。算法采用两阶段迭代:第一阶段删除东南方向边界像素,第二阶段删除西北方向边界像素。删除条件包括邻域像素数量限制、连通性保持以及方向性约束。扩展版本采用5×5邻域,增加扩展邻域连通性检查条件。粗化处理则是对偶细化过程,通过添加边界像素实现。算法通过Python实现,能有效保留原始结构特征,适用于字符识别等应用场景。原创 2026-05-26 09:31:27 · 365 阅读 · 0 评论 -
数字图像处理-9-图像的腐蚀和膨胀
本文介绍了二值图像的腐蚀和膨胀操作。腐蚀操作包括垂直腐蚀(3x1窗口检测上下像素)、水平腐蚀(1x3窗口检测左右像素)和全方向腐蚀(自定义5像素窗口检测),通过检测窗口内是否存在背景像素来缩小前景区域。膨胀操作与之对偶,包括垂直膨胀、水平膨胀和全方向膨胀,通过检测窗口内是否存在前景像素来扩大前景区域。每种操作都提供了Python实现代码和效果图展示,展示了不同方向处理后的图像变化。这些形态学操作可用于图像边界调整和特征提取。原创 2026-05-24 22:58:40 · 361 阅读 · 0 评论 -
数字图像处理-8-图像的阈值分割,连通区域标记,周长,面积计算(像素数量)
本文介绍了图像处理中的几个关键算法:1)灰度图像二值化,通过设定阈值将图像转换为黑白二值图;2)连通区域标记的两遍扫描法,通过检查像素邻域进行标签分配和合并;3)测量连通区域的面积和重心位置;4)删除面积过小的目标区域。文章详细说明了各算法的实现原理,并提供了Python代码示例,包括二值化处理、连通区域标记、区域测量等功能。这些算法适用于前景背景对比明显的图像,可用于目标检测、图像分割等应用场景。通过实际效果图展示了算法处理结果,如连通区域标记和区域测量统计。原创 2026-05-24 20:56:30 · 339 阅读 · 0 评论 -
数字图像处理-7-图像的梯度锐化算法
本文介绍了三种基于图像梯度的锐化方法。图像梯度反映灰度变化速率,边缘区域梯度大,平滑区域梯度小。通过计算像素点的一阶差分近似梯度,采用不同策略增强边缘:1)门限锐化对超过阈值的边缘叠加固定亮度;2)梯度二值化将图像转为黑白轮廓图;3)固定锐化将边缘强制设为白色,保留背景灰度。三种方法分别适用于突出边缘纹理、提取轮廓和兼顾背景信息的场景,并附有Python实现代码和效果图展示。原创 2026-05-24 15:02:17 · 393 阅读 · 0 评论 -
数字图像处理-6-图像的边缘检测的各种算子
本文介绍了多种边缘检测算子的原理与实现方法。主要包括:1)卷积核运算方法,包括2个卷积核取最大值和N个卷积核取最大值;2)Roberts算子,通过2×2窗口对角线差分计算梯度;3)Prewitt算子,采用3×3窗口行/列差分;4)Sobel算子,在Prewitt基础上增加中心权重;5)Kirsch算子,使用8个方向卷积核检测边缘。这些算子各有特点,如Roberts定位精确但对噪声敏感,Sobel抗噪性好,Kirsch对各向异性边缘更敏感。文中提供了各算子的Python实现代码和效果图展示。原创 2026-05-24 13:27:43 · 366 阅读 · 0 评论 -
数字图像处理-5-图像处理的数学基础
本文介绍了数字图像处理中的微分运算方法。首先阐述了一阶差分(横向、纵向和双向)用于检测图像边缘,以及二阶差分和拉普拉斯算子用于检测灰度变化率的变化。详细推导了4邻域和8邻域拉普拉斯卷积核的数学原理,并比较了它们的特性。随后给出了Python实现代码,包括水平、垂直和双向一阶差分运算,以及基于卷积核的拉普拉斯运算方法。通过实际效果图展示了不同运算对边缘检测的效果差异,为图像边缘检测提供了理论基础和实现参考。原创 2026-05-24 11:57:14 · 509 阅读 · 0 评论 -
数字图像处理-4-图像的中值滤波和最大值滤波方法
本文介绍了两种常用的图像滤波方法:中值滤波和最大值滤波。中值滤波分为NxN方形滤波和十字型滤波,通过取邻域像素的中值来消除椒盐噪声,保持图像边缘。NxN滤波效果更好但计算量大,十字型滤波速度更快但效果稍弱。最大值滤波则用邻域最大值替换中心像素,适用于膨胀操作、填充暗孔等场景。文中提供了Python实现代码,并展示了不同参数下的滤波效果对比图,分析了各方法的优缺点及适用情况。原创 2026-05-23 19:39:52 · 261 阅读 · 0 评论 -
数字图像处理-3-图像平滑处理的滤波方法-二值图像噪声消除和邻域平均法
本文介绍了图像噪声生成与二值图像降噪方法。首先通过随机噪声和椒盐噪声模拟相机传感器噪声,分别采用高斯分布随机量和低概率置黑方式实现。然后针对二值图像提出两种降噪算法:黑白翻转消噪通过8邻域均值判断孤立噪点并翻转;连通域分析则检测被白色包围的孤立黑点进行消除。实验表明,这些方法能有效去除二值图像中的颗粒噪声,改善图像质量。代码实现展示了从噪声生成到降噪处理的完整流程。原创 2026-05-23 19:10:33 · 377 阅读 · 0 评论 -
数字图像处理-2-二值化,投影,灰度变换,直方图
本文介绍了基于Python实现的图像处理方法,包括二值化、灰度变换和灰度投影。二值化部分包含固定阈值法和双固定阈值法,可将图像转换为黑白两色。灰度变换部分介绍了窗口灰度变换和分段线性变换,用于调整图像动态范围。灰度投影则用于分析图像元素间隔,如文字识别中的行间距检测。所有方法均基于8位位图实现,未使用第三方图像处理库,代码简洁高效。原创 2026-05-14 21:26:55 · 407 阅读 · 0 评论 -
数字图像处理-1-DDB,DIB以及Bitmap
本文介绍了DDB(设备相关位图)和DIB(设备无关位图)的区别,以及Bitmap图像文件的结构。DDB依赖设备调色板,而DIB自带颜色信息。Bitmap文件包含文件头、信息头、颜色表和图像数据四部分,其中颜色表仅存在于非24位图像中。通过一个15x16像素的闹钟图像实验,展示了如何解析Bitmap文件,包括读取文件头、信息头、颜色表以及图像数据。实验结果表明,该图像使用4位深度,包含16种颜色,验证了Bitmap文件结构的正确性。原创 2026-05-10 21:09:11 · 445 阅读 · 0 评论 -
常用的视频接口
常用视频接口别人已经总结好了,直接拿过来吧https://blog.csdn.net/ytffhew/article/details/83618007原创 2019-01-20 23:01:19 · 1063 阅读 · 0 评论 -
网络-RTSP简单理解
网络上有很多介绍RTSP的文章,但是看后还是印象不深刻,这里就记录一下读学习笔记吧。1.协议介绍RTSP协议以CS的方式工作,它是一个应用层的多媒体播放控制协议,用来使用户在播放从互联网下载的实时数据时能够对其进行控制,如暂停、继续、快进、快退等RTSP的语法和操作与HTTP相似了,所有请求和响应都是基于ASCII文本。不同的是RTSP是有状态的协议,而HTTP是无状态的。RTSP记录客户端...原创 2019-02-17 18:33:18 · 3896 阅读 · 0 评论 -
ffmpeg学习之-初步认识及windows环境搭建
1.源码下载http://www.ffmpeg.org/download.html2.ffmpeg:FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group) 快速动态图像专家组.原创 2019-02-25 09:24:53 · 453 阅读 · 0 评论 -
ffmpeg学习之-window下编译安装nginx用ffmpeg推抓视频流
https://www.cnblogs.com/qfb620/p/5508468.html原创 2019-03-03 13:24:48 · 2126 阅读 · 0 评论 -
网络-TCP/UDP/IP体系结构和协议简介
发生大幅杀跌原创 2019-03-03 17:48:15 · 1835 阅读 · 0 评论 -
网络-本地回路的抓包工具RawCap
本地使用wireshark无法抓回路包,为此百度了一下RawCap可以抓回路包,亲测可用。特记录下来。1.工具下载地址https://www.netresec.com/?page=RawCap2.工具使用界面选择5,回路监听输入保存文件的名称,回车,即可开始抓包ctrl+c,结束抓包。3. wireshark中使用将文件从wireshark中打开 文件->打开,...原创 2019-03-03 18:53:02 · 4217 阅读 · 0 评论 -
camera模组拆解记录
今天在座位下面捡到一颗模组,想到做几年Camera,还没有拆过模组,这次就花点时间拆开看了一下。下图从左到右介绍1.PCB板:由模组厂根据芯片封装Layout出PCB,然后将sensor ic焊接上去。这里本人特地看了一下连接处。不是传统的芯片IC,直接连接到PCB焊盘上,而是用细金属丝将芯片IC和PCB焊盘连接到一起的。百度看了一下,说这是金丝2.底座3.滤光片4.镜头5.VCM...原创 2019-06-06 17:01:21 · 6286 阅读 · 1 评论 -
图像处理-RGB24转YUV420遇到的坑以及执行效率对比
文章目录一、色彩空间简介及一些参考文档二、YUV和RGB转换公式三、RGB和YUV420转换提前需要了解的知识1.YUV420内存布局2.RGB内存布局3.转换方式四、源代码执行效率对比五、编译过程中遇到的问题一、色彩空间简介及一些参考文档不同的色彩空间,颜色的表现形式不同(见http://colorizer.org/ 这个网站中简单介绍了各个色彩空间的模型。)。色彩空间中的颜色是可以相互转化...原创 2019-08-21 18:27:39 · 7459 阅读 · 0 评论 -
ubuntu opencv开发环境配置介绍
一、源码包下载源码包从链接:https://opencv.org/releases.html 下载解压源码包源码下载下来后是zip包,这里本人下载的是3.4.3的版本,则使用unzip opencv-3.4.3.zip 解压出来成下面样子。源码包文件列表armwind@armwind-X555LD:~/data/opencv/opencv-3.4.3$ tree -L 1 ..├...原创 2018-11-25 11:38:00 · 3044 阅读 · 0 评论
分享