图像融合(一)Poisson Blending

泊松融合(Poisson Blending)又作 Seamless clone,用于将两幅图像“无缝”的融合起来,基本原理就是最优化一个方程,尽量在和base边界处保持相关的亮度,同时保留剪切过来图像的梯度,这样看起来两张图像就“无缝”拼合在一起了。因为该工具在opencv中已经存在,所以我们可以直接使用opencv体验其效果。这篇博简单介绍原理,以及感受效果。

阅读更多

视频帧间插值(一)Softmax Splatting for Video Frame Interpolation

视频插帧是计算机视觉许多应用中的一个传统问题,splatting transformer network 技术已被广泛用于两幅图像之间的新图像合成:非监督深度估计,非监督光流预测,光流预测,新视角合成,视频插帧,视频增强,视频编辑、视频压缩、去除视频运动模糊中。视频插帧方法被分为flow-based、kernel-based、phase-based。这些方法都是估计出两帧之间的光流场,一般通过warp前一帧来得到中间帧。视频插帧在某些场景下特别困难,比如场景和物体在不断运动和变化,或者存在遮挡时,插帧问题会同时存在多个解。

这篇博客介绍CVPR2020的一篇论文,是flow-based的方法。这篇文章主要贡献有两个,一是使用了softmax splatting的方法来处理不同源像素warp之后到同一点的问题,二是使用了特征金字塔,应该是对大位移有更鲁棒。

阅读更多

保边滤波

自然图像都存在噪声,噪声和边缘在局部方差方面表现相似,一般的滤波器无法区分噪声和边缘,于是对其统一处理,因此很多情况下,滤波的同时,边缘也被处理模糊掉了。保边滤波器(Edge Preserving Filter)是指在滤波过程中能够有效的保留图像中的边缘信息的一类滤波器。

常见的保边滤波器有如下几种:双边滤波(Bilateral filter)、引导滤波(GuidedFilter)、加权最小二乘法滤波器(WLS)、非均匀局部滤波器(NLM)、双指数边缘平滑滤波器(BiExponentialEPF)、选择性模糊和表面滤波。

阅读更多

自动白平衡AWB

人类视觉系统具有颜色恒昌性特点,一次人类对物体观察不受光源影响。但是sensor在不同光照下,物体呈现的颜色不同,在晴朗的天空下(高色温)会偏蓝,在烛光(低色温)下会偏红。为了消除光源对图像传感器成像的影响,模拟人类视觉系统的颜色恒常性。保证在任何场景下看到的白色是真正的白色。

对于RGB三通道图像,乘以一个对角阵就可以实现白平衡,白平衡计算的核心就是计算Rgain和Bgain,下文中简称RG和BG。

阅读更多

Python中类似Matlab-interp2的插值函数:RectBivariateSpline与interp2d

在matlab中我们可以通过interp2在矩形网格内进行曲线插值,那么在python中有没有有类似的函数呢?有,并且有很多,都在scipy.interpolate模块中。这篇博客主要说两个比较相似的:interp2d和rectBivariateSpline。两者比较相似,如果输入是规整的网格点,那么使用rectBivariateSpline会更快。下面给一些介绍和例子:

阅读更多

Python解析Raw格式图像

简记下使用rawpy提取raw图像并转化为rgb。rawpy就是libraw的python封装,rawpy.imread直接可以读到raw数据,postprocess方法可以走完isp(BWC、RBGain、demosaic、gamma),得到一副RGB图像。postprocess的参数可以用来控制后处理流程,raw还有enhance模块,主要封装了坏点矫正,更细致的修改查阅官方文档

阅读更多

图像质量评价(一)Imatest介绍与使用

目前接触到的测试图像质量的软件有imatest和dxo analyzer,图像质量的评测需要和测试卡、光源灯器材结合使用,用于测试的器材通常价格昂贵并且越贵越好。网上imatest的破解版软件比较好找,所以相对于dxo analyzer小白用户更多,所以这篇博客简单接受imatest的安装和基本使用。

这篇博客适合新手小白,因为博主也是新手小白,大神可以不用点进来看啦。

阅读更多

浅谈HDR

成像过程就是测量自然场景的光照强度,如果把图像传感器比作一把测量光强的尺子,那么成像的Dynamic Range(动态范围)就是这把尺子的量程。如果我们需要测量的自然场景超过了这把尺子的测量范围,我们应该怎么做呢?我们可以用这把尺子多次测量,每次测量不同范围,最后将每次测量的结果拼接起来,相当于用了一把大量程的尺子,这种技术就叫做HDR技术。

我们可以生成一副大动态范围(HDR)的图像,但是我们的显示器显示不了那么大动态范围的图像,同时我们还希望看到更多细节,这就要用到动态范围压缩技术(通常是Tone Mapping)。这篇博客简单介绍HDR技术,正如标题   浅谈~   一下

阅读更多

Matlab解析DNG格式图像

DNG是一种很灵活的图像格式,是在Tiff基础上拓展来的,随着传感器技术、后期图像处理能力的增强,我们很多时候直接将ISP采集的图像数据直接Dump下来,不做任何处理,这就是RAW图,同时我们把处理RAW图需要必要信息存下来(Bayer Pattern、白平衡、噪声水平等),然后我们就可以进行后期处理了。总之,DNG是一种RAW图格式,其中除了数据段之外,有很多标签信息。

阅读更多

快速线段检测之EDlines算法

博主认识的几种线段检测算法有:Hough变换法、LineSegementDetector (OpenCV3中加入的算法)、FastLineDetector(在opencv的contribute模块中)。LSD算法的速度让人望而却步,FLD算法一大堆参数很难调优,并且速度并没有特别快。在使用这些算法的时候或多或少都遇到了问题,于是EDlines算法浮现在眼前,快速,并且效果不错。 Ed就是EdgeDraw的缩写

阅读更多

聊聊条码与二维码检测算法的优化

条码和二维码搞了许久,之前在做二维码识别的优化,想能搞出多少花来呢?最近需要在极小的内存下完成二维码的识别和解码。顿时头大了,不过锅刚刚解了,就来说一说。

条码和二维码的特点就是我们前处理之后,都是处理的二值图像。那么在二值图像上操作有什么好方法呢?不卖关子,说出答案了:游程编码。

阅读更多

图像游程编码的腐蚀与膨胀操作

最近英语课上聊到了互联网兴起以来,交流方式的变化,博客是互联网最早的形式之一,已经相当老了,现在的交流变得更加简短,与微博和朋友圈不到一百字的简短相比,博客是相当长的了。可能是现代人太吝啬自己时间了,写博客的人越来越少,并且博客质量下降,得益于信息的快速传播,也出现了天下文章一大抄的现象。不过我想,还是有些东西需要实实在在的篇幅来沉淀的,于是想起有还有坑没有填,就快点过来把坑填完了。

通常我们使用游程编码的原因是因为游程编码更快,并且更加节省内存,游程编码可以做很多事情,其中就包括形态学操作,这篇博客将详细介绍在游程编码上实现形态学操作。

阅读更多