ESFR chart是iso12233:2014中提供的一种chart,这种chart可以测sfr,也可以分析颜色误差、信噪比、Tone,我们除了使用imatest、dxo工具等专业影像分析工具外,我们也可以用Matlab的工具箱来处理esfr chart,测量成像系统的清晰度、信噪比等指标。
图像处理
在Raw域控制饱和度的方法
我们在给图像乘以一定的gain的时候,如果各个通道乘的gain不同,会改变颜色和饱和度,所以我们在乘以gain … 阅读更多
ECC增强相关系数图像配准
传统图像配准算法有基于特征点、变换域、参数求解几种,其中参数求解算法中,ECC具有很好的速度和硬件友好的实现,这篇博客会看下论文推导和opencv的开源实现。
论文速览:Automatic Flare Spot Artifact Detection and Removal in Photographs
强光处会出现耀斑伪影,耀斑伪影问题常常出现在手机拍照中,由于镜头设计的缺陷,强光伪影很难从镜头模组设计上去除(iphone12promax的夜间伪影尤为强烈,基本导致拍摄画面不可用),于是耀斑伪影问题交给计算摄影来解决。
这篇博客介绍论文 : 照片中耀斑伪影的自动检测和去除 Automatic Flare Spot Artifact Detection and Removal in Photographs 。2019年 Journal of Mathematical Imaging and Vision。
阅读更多论文速览:Automatic Flare Spot Artifact Detection and Removal in Photographs
保边滤波之BEEPS
BEEPS,即双核书边缘保护平滑滤波器(Bi-Exponential Edge-Preserving Smoo … 阅读更多
Matlab处理AppleProRaw
使用raw图工具打开AppleProRaw可以发现它是一个四通道线性rgba图像,博主用matlab写了一个处 … 阅读更多
曝光图像融合算法之DeepFuse
曝光图像融合通常的应用场景是HDR,传统的图像融合算法分为两类,一类是像素级的图像融合,通过将图像不同频段分离,在像素层及进行融合,另一类是基于变换域的方法,把图像变换到频率、小波域进行图像融合,最后再反变换回来,有些类似于同态滤波的形式。博主之前介绍过Mertens Exposure Fusion、Pyramid Blending、Possion Blending等都是经典的传统图像融合算法。
传统图像融合算法在融合曝光程度差异小的图像时非常有效,但是图像之间曝光差异程度大的时候融合结果就会出现瑕疵,事实上极端曝光情况下的图像融合具有非常大的挑战,这篇博客介绍一种基于无监督的图片融合算法DeepFuse,看名字就知道这是一种CNN的算法实现。
保边滤波之选择性模糊
博主之前的博客中介绍了数种保边滤波算法,它们滤波器设计的共性就是,同时考虑空间信息和灰度信息,这次要介绍的选择性滤波也是一样。选择性滤波是在一定空间领域内,选择灰度值范围进行加权平均(这一点和surface blur是一样的,与surfaceblur的不同是,surface blur是根据灰度值是否接近计算权重,选择性模糊是根据像素数量计算权重)。所以选择性模糊的一大好处就是,知道领域的直方图就可以完成滤波计算了,核心问题变成直方图统计之后,算法复杂度就大大降低了,在领域半径急剧增加时,可以体现优势。
自动对比度和自动伽马
在图像处理后期,常常会拿Photoshop做实验,所以开始研究Photoshop里面的算法。Photoshop中的算法都已经商业化,有些甚至原理非常简单,但是简单并不代表不好用,所以记录下。
自动对比度的设置在 调整->色阶 中,我们可以看到,算法主要有三个参数,阴影、中间调、高光。
加权中值滤波
中值滤波是经典的非线性滤波,教材中都会介绍其处理椒盐噪声的作用。而加权中值滤波就是在窗口内的每一个像素都乘以一个相应的权值,然后用加权后的值进行排序,累加权重值等于所有权重值的一半使停止,使用此时的像素值替换中心像素,像素的权重通常是相似度,这种改进可以滤除更多形态的噪声。
通常我们使用中值滤波都会非常谨慎,因为中值滤波非常慢,不断的排序对现在的GPU架构非常不友好,那么加权中值滤波使用时的核心就是速度考量了。这篇博客介绍一篇论文:100+ Times FasterWeighted Median Filter。
保边滤波之SurfaceBlur
在Photoshop中有一种经典的模糊滤镜:表面模糊。因为在Photoshop中存在存在该滤波器,所以我们可以 … 阅读更多
Halide(四)实现图像缩放imresize
先放个链接,后面补上:Halide 〜画像処理を高速化する〜
Halide(三)Buffer与cv::Mat的相互转换
目前OpenCV的NN模块中已经有Halide一部分代码,可以通过 net.setPreferableBackend(DNN_BACKEND_HALIDE); 告诉OpenCV NN引擎尽可能使用Halide进行计算。除非以后OpenCV完全实现Halide的运行机制,否则在图像处理任务中,Halide与OpenCV协同工作是不可避免的。这篇博客主要介绍Halide的图像类型和OpenCV图像类型的相互转化。
Halide(二)算法描述
基本语法和规则一定从官方教程开始,这篇博客是官方教程前几节的简要笔记。主要介绍 Halide 算法描述的语法规则、变量打印和调试、算法对ROI和padding的处理。
Halide(五)算法调度 是紧跟在本博客之后的章节,都是对官方教程的笔记,(三)和(四)是一些环境和常用算法的穿插,不关心可跳过。