
数字图像处理论文和算法复现
just_sort
Acdream.
展开
-
【综述】图像去雾的前世今生
1. 前言其实对图像去雾也没有什么深入的了解,只是了解过一些传统的图像去雾方法而已。说实话,在CNN模型大流行的今天,已经有很多人忽略了传统算法的发展,以至于你今天去搜索10年前的去雾算法或许根本找不到相关资料了,或许这就是现实中的围城吧。。今天有空来整理一下我所了解到的图像去雾技术的发展,尝试做一个详细点的综述。2. 概述图像去雾在计算机视觉中虽然不像目标检测,语义分割这种任务整天会放在台...原创 2020-03-14 23:19:01 · 3218 阅读 · 1 评论 -
OpenCV图像处理专栏十六 | 合理选用Side Window Filter辅助矩形框检测
摘要:年前的时候,在StackOverFlow上发现了一个有趣的检测图像中的项目,今天下定决心要把它分享一下,另外我发现如何将这个算法配合上CVPR 2019的Side Window Filter在某些图片上可以实现更好的效果。1. 前言今天要干什么?在一张图片上通过传统算法来检测矩形。为了防止你无聊,先上一组对比图片。这个算法出自https://stackoverflow.com/...原创 2020-03-09 18:17:04 · 1629 阅读 · 2 评论 -
SSE图像算法优化系列2-高斯滤波
前言本算法的原理以及优化过程都是偷师ImageShop,也可以把这篇文章理解为https://www.cnblogs.com/Imageshop/p/6376028.html 这篇文章的一篇阅读总结。原理首先,高斯滤波是可以用递归算法来实现的。这最早见于《Recursive implementation of the Gaussian filter》论文中:在forward的过程中,n是递...原创 2019-07-09 17:27:06 · 2867 阅读 · 0 评论 -
色彩均衡化算法
算法原理彩色均衡化(Equalizer)就是要增大亮度间隔,使其呈均匀化分布,减少反差,从而修正图像中的某些不足的地方,使图像细节变得清晰。图像均衡化的基本思想就是将出现频率较小的亮度级并入到邻近的亮度级中,从而拉开亮度间隔,较少亮度等级,使其呈均匀分布,弱化其反差。实现方法对图像进行直方图信息统计,再根据均衡化的基本思想对个亮度级的分布概率做均衡化处理,产生一个256级亮度的映射表,最后对...原创 2019-07-02 09:29:08 · 2424 阅读 · 0 评论 -
CVPR2019 Oral 论文《Side Window Filtering》C++代码实现
算法原理可以看这篇文章:https://zhuanlan.zhihu.com/p/58326095简单介绍这篇文章提出了一种新的方法用于滤波保留边缘和角点,原理在上面的文章可以找到,同时也能找到论文原文和一份github的代码,这种方法可以配合现有的任何滤波方法使用,让这些滤波方法都强制保留边缘。只需要将对应的滤波的核的系数换成对应的滤波方法的核即可。这里我实现了均值滤波的Side Win...原创 2019-06-25 22:25:12 · 4578 阅读 · 11 评论 -
基于二次多项式混合模型肤色检测算法
在大佬的博客看到这篇文章:https://www.cnblogs.com/Imageshop/p/3264238.html ,关于一个肤色检测的算法,很感兴趣,所以打算以自己的方式总结和C++实现一下这个算法。算法来源https://files-cdn.cnblogs.com/files/Imageshop/Adaptive_skin_color_modeling_using_the_skin...原创 2019-06-21 14:48:14 · 501 阅读 · 1 评论 -
肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法
基于RGB颜色空间的简单阈值肤色识别在human skin color clustering for face detection一文中提出如下简单的判别算式:R>95 And G>40 And B>20 And R>G And R>B And Max(R,G,B)-Min(R,G,B)>15 And Abs(R-G)>15算法非常之简单,同样主要...原创 2019-06-20 21:49:57 · 3433 阅读 · 0 评论 -
GAN理论推导(知乎转载)
GAN理论推导在知乎上看到一个对GAN推导得十分仔细的文章,写得非常好,我准备按照他的思路推导一下GAN的理论。GAN的原理转载 2019-05-30 21:50:47 · 1254 阅读 · 3 评论 -
OpenCV图像处理专栏十七 | 清华大学《基于单幅图像的快速去雾》C++复现(有一定工程意义)
论文原文清华大学写的文章:基于单幅图像的快速去雾算法,作者:刘倩,陈茂华,周东华。算法过程实际上有了这个算法流程就可以写出代码了,不过为了加深理解可以看下面的一些推导。一些推导我们知道去雾的步骤主要就是估计全局大气光值A和透射率t(x),具体可先看这篇文章:https://blog.youkuaiyun.com/just_sort/article/details/89634180 。因此,本文就是根...原创 2019-05-14 14:31:17 · 2502 阅读 · 0 评论 -
OpenCV图像处理专栏十 | 利用中值滤波进行去雾
论文原文http://www.cnblogs.com/Imageshop/p/3458963.html算法原理代码实现#include <opencv2/opencv.hpp>#include <iostream>#include <algorithm>#include <vector>using namespace cv;usi...原创 2019-04-25 17:34:12 · 1528 阅读 · 0 评论 -
图像去雾技术综述 --- 转
研究图像去雾技术有一段时间,阅读很多文献以及实现了很多算法。因此将个人对图像去雾技术的理解写成这篇文章,避免自己忘记,以及跟广大网友交流学习。1、概述 图像去雾的研究算法有很多,但是主要分为两类:基于图像增强的去雾算法和基于图像复原的去雾算法。基于图像增强的去雾算法去除图像的噪声,提高图像的对比度,从而恢复出无雾清晰视频。具有代表性的图像增强去雾算法有: 1. 直方图均衡化(HE),...转载 2019-04-28 11:15:33 · 1333 阅读 · 1 评论 -
《Single Image Haze Removal Using Dark Channel Prior》论文阅读及复现番外(使用导向滤波估计更加精细的透射率)
前言\quad之前写过这篇论文的复现,https://blog.youkuaiyun.com/just_sort/article/details/84110518 ,但是当时估算透射率的时候没有用softmating或者导向滤波,是用何博士的公式粗略的计算的,所幸,在了解了导向滤波后,我完成了使用导向滤波估算 更加精细的透射率的任务,也确实取得了更好的去雾效果,所以打算分享一下这个源码。我所有开源的论文实...原创 2019-04-23 13:12:45 · 1825 阅读 · 0 评论 -
【AI PC端算法优化】五,常量阶最大值最小值滤波算法
算法介绍\quad之前做过最大值最小值滤波基本上复杂度是非常高的,因为涉及到遍历w*h的滑动窗口中的所有值然后求出这个窗口所有值的最大和最小值。尽管可以使用sse优化,但速度仍然快不起来,最近在ImageShop博主的一篇博客中遇见了这篇论文,https://files-cdn.cnblogs.com/files/Imageshop/O(1)最大值最小值算法.pdf ,讲的就是O(1)实现最大最...原创 2019-04-20 22:16:24 · 1227 阅读 · 1 评论 -
SSE图像算法优化系列1-RGB转灰度图
前言ImageShop博主是我的Idol。我会逐渐出一些SSE优化一些图像领域的算法的文章,并且将代码开源到Github,希望可以为我多多star。算法原理RGB转灰度图没啥说的了,这里的重点在于使用SSE优化,但为了和普通以及多线程优化的程序做一个速度对比这里也提供了一下对应的程序实现,我在实现这个代码的时候主要参考了ImageShop博主的这篇文章,https://www.cnblogs...原创 2019-07-02 17:06:37 · 2910 阅读 · 3 评论 -
图像处理中的模糊算法
平滑在数字图像上进行平滑操作,就是需要用模板(高斯模板,均值模板)在图像上做卷积,得到新值,这就是模糊的原理。卷积核中的每个元素叫做卷积系数,卷积核中卷积系数的大小、方向及排列次序决定图像卷积后处理的最终效果。改变卷积核中的加权系数,会影响到综合的数值与符号,从而影响到所求像素的新值。常用卷积核有3×3、5×5、7×7等,所有卷积核的行、列都是奇数。均值滤波、高斯滤波以及各种自定义的滤波都可以通...原创 2019-06-27 15:58:35 · 4248 阅读 · 1 评论 -
图像处理中的锐化算法
拉普拉斯锐化图像锐化通过增加邻域像素的对比度来减弱或消除图像的模糊程度,使图像变得清晰,锐化和平滑恰恰相反。拉普拉斯锐化是采用拉普拉斯算子对图像进行操作。对于扩散现象引起的图像模糊,可以用下式来进行锐化:g(i,j)=f(i,j)−kτ∇2f(i,j)g(i, j)=f(i, j)-k\tau\nabla^2f(i, j)g(i,j)=f(i,j)−kτ∇2f(i,j),这里kτk\taukτ...原创 2019-06-27 14:03:10 · 6555 阅读 · 0 评论 -
SSE优化系列十一:SSE优化三次卷积插值算法
前言原创 2019-08-28 15:06:02 · 2297 阅读 · 0 评论 -
SSE优化系列十:RGB和YUV格式图像互转SSE优化
前言最近感觉对SSE已经算是熟练度更加好了一点了,这一节就来探讨图像处理中一个常见的算法,就是颜色通道转换问题。RGB2YUV朴素实现原创 2019-08-14 10:23:41 · 2054 阅读 · 1 评论 -
SSE优化系列九:小半径中值滤波的SSE极速优化(比OpenCV3.1.0快9-10倍)
前言在优化系列六:https://blog.youkuaiyun.com/just_sort/article/details/97280807 中提出了一个直方图算法处理框架,可以处理中值滤波,最大值滤波等,算法复杂度是和半径大小无关的。但是这里忽略了一个点在半径很小的时候,这个算法实际上是比直接暴力处理更慢的。而我们在日常图像处理过程中,小半径的中值滤波是最常用的例如3 * 3, 5 * 5 在PS中都...原创 2019-08-06 16:10:50 · 1457 阅读 · 0 评论 -
SSE优化系列七:使用SSE优化盒滤波
前言接着上一篇博客here构造的用直方图技巧加速的滤波算法处理框架,使用SSE实现了近似于O(1)的BoxFilter,参考博客:https://www.cnblogs.com/Imageshop/p/5053013.html ,接下来分享一些实现关键点和细节。本文的函数接口和上一篇博客完全一致。普通C语言实现// 函数功能: 实现图像方框模糊效果// 参数列表:// Src: 需要处理...原创 2019-08-01 16:58:20 · 1447 阅读 · 0 评论 -
SSE优化系列八:使用SSE优化多尺度细节提升算法
前言这篇文章的原始来源请看我以前写的这篇博客:https://blog.youkuaiyun.com/just_sort/article/details/85007555 上面有算法原理和普通的opencv实现。然后这篇文章是在SSE优化系列七: 对盒滤波的SSE优化(https://blog.youkuaiyun.com/just_sort/article/details/98075712)的基础上,将多尺度提升算...原创 2019-08-05 14:44:53 · 1968 阅读 · 0 评论 -
ParseNet 论文阅读及代码实现
论文原文https://arxiv.org/pdf/1506.04579.pdf需要解决的问题这篇文章首先提出一个问题,理论感受野是真的吗?我们在PSNet的文章:https://blog.youkuaiyun.com/just_sort/article/details/90779543 中已经知道,感受野对于语义分割网络有很大影响,我们也是尽量去增大网络的感受野,让网络可以看见的区域更多,从而让语义分...原创 2019-07-26 17:29:23 · 1751 阅读 · 0 评论 -
SSE算法优化系列六:使用SSE优化最大值滤波
前言原创 2019-07-25 18:04:44 · 1998 阅读 · 0 评论 -
SSE算法优化系列5:一个简单的肤色检测算法
前言同样,这篇文章仍然可以看成是阅读了ImageShop的https://www.cnblogs.com/Imageshop/p/7364115.html 总结。肤色检测普通实现这个算法的原理我已经在之前的一篇文章讲过了:https://blog.youkuaiyun.com/just_sort/article/details/93134960 ,这里先直接给一下C语言实现的普通代码。#define ...原创 2019-07-19 15:22:59 · 754 阅读 · 3 评论 -
SSE算法优化系列4:使用SSE优化Sobel边缘检测算法,加速比9.5倍
前言仍然是学习Imageshop的文章,https://www.cnblogs.com/Imageshop/p/7285564.html 。做了一个小总结,并且完整实现了这个SSE优化的算法,可以关注我专门用SIMD优化图像处理算法的工程:https://github.com/BBuf/Image-processing-algorithm-Speed传统的Sobel算法实现我之前写过Sobe...原创 2019-07-17 11:33:14 · 2954 阅读 · 9 评论 -
SSE算法优化系列3-自然饱和度(Vibrance)算法的模拟实现及其SSE优化
前言在ImageShop的博客上看到这个算法,本着跟大佬一起学习SSE的目的,开始了这个博客。我的代码实现:https://github.com/BBuf/Image-processing-algorithm-Speed 。作者的源码失效了,这个代码是我参考着作者博客复现出的。算法原理实际上就是下面这个代码,具体原理不清楚,这篇博客的目的本来也就是学习如何SSE优化代码,所以也无伤大雅。/...原创 2019-07-15 18:32:16 · 1153 阅读 · 1 评论 -
OpenCV图像处理专栏十一 | IEEE Xplore 2015的图像白平衡处理之动态阈值法
算法介绍\quad基于动态阈值的自动白平衡算法,论文地址:https://files-cdn.cnblogs.com/files/Imageshop/ANovelAutomaticWhiteBalanceMethodforDigital.pdf算法原理\quad同经典的一些算法相同,算法分为两个步骤:白点检测和白点调整。算法步骤把图像w*h从RGB空间转换到YCrCb空间。选择...原创 2019-04-10 15:15:00 · 2034 阅读 · 0 评论 -
Marr-Hildreth 边缘检测 OpenCV C++实现
算法原理原创 2019-03-21 11:22:01 · 1211 阅读 · 0 评论 -
《Optimized contrast enhancement for real-time image and video dehazin》论文C++复现
前言\quad本文提出了一种针对含有雾的图像和视频快速、完善的去雾算法。观察发现有雾的图像普遍具有低对比度,我们通过增强对比度来修复图像。然后多度的增强这些低对比度会截断像素值以及导致信息丢失。因此,我们引入一个包含对比项以及信息丢失项的损失函数。通过最小化损失函数,该算法不仅增强了对比度而且有效的保留了图像信息。另外,我们将图片去雾算法扩展到视频去雾。我们通过计算透射率的相关性减少对视频去雾时...原创 2018-12-09 21:56:53 · 1959 阅读 · 3 评论 -
OpenCV图像处理专栏十三 | 利用多尺度融合提升图像细节
论文链接请google,一篇IEEE的论文,在查询提升图像细节的时候看到一个博客上对这个论文介绍,我下载不了论文,所幸那个博主给了论文的主要部分的图片,可以到这个博客查看:https://blog.youkuaiyun.com/q781045982/article/details/78632955算法原理核心就是,论文使用了Retinex方法类似的思路,使用了多个尺度的高斯核对原图滤波,然后再和原图做...原创 2018-12-14 17:50:24 · 2782 阅读 · 10 评论 -
OpenCV图像处理专栏八 | 《Contrast image correction method》 论文阅读及代码实现
论文原文算法原理这篇论文是在我之前写过的一篇:https://blog.youkuaiyun.com/just_sort/article/details/84539295 上提出了一些新的东西,接下来就一起来看看。首先在Local Color Correction中由O(i,j)=255[I(i,j)255]γO(i,j)=255[\frac{I(i,j)}{255}]^{\gamma}O(i,j)=25...原创 2018-12-14 16:11:36 · 1893 阅读 · 0 评论 -
RGB和CIELAB颜色空间转换及偏色检测
RGB转为CIELAB首先RGB是不可以直接转为CIELAB颜色空间的,RGB需要先转为CIEXYZ颜色空间,然后再由CIEXYZ颜色空间转为CIELAB颜色空间。关于这2个颜色空间的互转,主要参考了http://www.cnblogs.com/Imageshop/archive/2013/02/02/2889897.html这篇文章。RGB转LAB颜色空间的代码如下:void RGB2LA...原创 2018-12-08 19:31:53 · 7159 阅读 · 6 评论 -
同态滤波 原理及C++实现
前言\quad之前做的一些滤波,例如高斯,双边,均值,导向滤波均是在时域下做的滤波。而同态滤波是在频域下来做滤波,用于改善动态范围很大但是暗区细节又不清楚的图像。原理\quad对于一般的图像,有这样一个模型f(x,y)=i(x,y)r(x,y)f(x,y)=i(x,y)r(x,y)f(x,y)=i(x,y)r(x,y)。其中f(x, y)代表原图像,i(x,y)代表照射强度,r(x,y)代表...原创 2018-11-30 09:26:08 · 4318 阅读 · 0 评论 -
OpenCV图像处理专栏二 |《Local Color Correction 》论文阅读及C++复现
前言\quad偶然见到了这篇paper,虽然之前复现的一些paper已经可以较好的处理低照度下的色彩恢复,然而在光度强度很大的情况下怎么恢复还不清楚,并且如果出现图片中既有很亮的部分,又有很暗的部分,又不知道怎么处理了。这篇paper,正式为了解决这一问题,他的局步颜色矫正,和He KaiMing的暗通道去雾有相似的想法,值得借鉴。算法原理首先对与太亮和太暗的图像,我们可以使用Gamma校正...原创 2018-11-26 13:52:07 · 2662 阅读 · 0 评论 -
引导滤波原理及C++代码实现
前置内容在学习引导滤波,最好对高斯滤波和双边滤波有过理解,对于高斯滤波:Wij=1Kiexp(−∣xj−xi∣2σ2)W_{ij} = \frac{1}{K_i}exp(-\frac{|x_j-x_i|^2}{\sigma^2})Wij=Ki1exp(−σ2∣xj−xi∣2),其中WWW是权重,iii和jjj是像素的索引,KKK是归一化的常量。公式可以看出,权重只和像素之间的空间距离...原创 2018-11-21 15:42:21 · 2781 阅读 · 6 评论 -
高斯滤波的C++实现与优化
高斯模板\quad首先高斯函数的定义为h(x,y)=e−x2+y22σ2h(x, y) = e^{-\frac{x^2+y^2}{2\sigma^2}}h(x,y)=e−2σ2x2+y2,其中(x,y)是图像中的点的坐标,σ\sigmaσ为标准差,高斯模板就是利用这个函数来计算的,我们来看高斯模板,假设大小为(2k+1)*(2k+1)为什么长宽都为奇数,这主要是保证整个模板有唯一中心元素,便于...原创 2018-11-20 16:54:51 · 5596 阅读 · 2 评论 -
OpenCV图像处理专栏二十 |《Adaptive Logarithmic Mapping For Displaying High Contrast Scenes》复现
前言之前实现了一篇《Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images》论文,虽然在低光照的色彩恢复效果很好,但是对我自己的图片(人脸相关的)处理效果并不是太好,然后调研过程中看到了这篇论文《Adaptive Logarithmic Mapping For Displaying High Contr...原创 2018-11-14 14:47:22 · 3360 阅读 · 0 评论 -
OpenCV图像处理专栏六 | 来自何凯明博士的暗通道去雾算法(CVPR 2009最佳论文)
前言先让我们来膜拜何凯明大佬这篇获得CVPR 2009的Best Paper Award论文。这篇论文的灵感来自自于作者2个观察,第一个是在3D游戏中的雾使得作者坚信人眼有特殊的东西去感知雾,而不仅仅是靠对比度。第二个是作者观察了之前的一篇去雾论文:《Single Image Dehazing》,发现这篇paper中的Dark Object Subtraction可以处理均匀的雾,但是非均匀的就...原创 2018-11-15 20:35:45 · 3559 阅读 · 0 评论 -
《Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images》C++实现
前言最近在做低照度图像恢复时,发现了一个充满知识的github工程:点这里,里面有一篇论文,《Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images》,它结合传统的Retinex技术提出了全局自适应和局部自适应的HDR实现过程,这里是参考了作者的matlab代码写出了暴力版本的代码实现,在720p的图像...原创 2018-11-13 16:10:39 · 4742 阅读 · 6 评论 -
OpenCV图像处理专栏七 | 直方图均衡化算法及代码实现
算法原理直方图均衡化,是对图像进行非线性拉伸,使得一定范围内像素值的数量的大致相同。这样原来直方图中的封顶部分对比度得到了增强,而两侧波谷的对比度降低,输出的直方图是一个较为平坦的分段直方图。具体来讲可以表现为下面这个图:通过这种方法可以按照需要对图像的亮度进行调整,并且,这种方法是可逆的,也就是说知道了均衡化函数,就可以恢复原始的直方图。接下来对原理进行说明:设变量rrr代表图像中像素灰度...原创 2018-12-15 14:06:25 · 1414 阅读 · 0 评论