传统图像处理
文章平均质量分 67
计算机视觉——传统图像处理
Nick Blog
这个作者很懒,什么都没留下…
展开
-
Canny 边缘检测算法-python实现(附代码)
Canny 边缘检测算法由计算机科学家 John F. Canny 于 1986 年提出的。其不仅提供了算法,还带来了一套边缘检测的理论,分阶段的解释如何实现边缘检测。原创 2023-03-30 14:30:23 · 6194 阅读 · 3 评论 -
RANSAC算法(附RANSAC直线拟合C++与Python版本)
文章目录RANSAC算法简介RANSAC算法基本思想和流程迭代次数推导RANSAC与最小二乘区别RANSAC直线拟合代码(C++及Python版本)C++版本代码Python版本代码如下:RANSAC优缺点参考RANSAC算法简介RANSAC(RANdom SAmple Consensus,随机采样一致)算法是从一组含有“外点”(outliers)的数据中正确估计数学模型参数的迭代算法。“外点”一般指的的数据中的噪声,比如说匹配中的误匹配和估计曲线中的离群点。所以,RANSAC也是一种“外点”检测算法。转载 2022-02-14 19:28:36 · 15772 阅读 · 2 评论 -
遥感图像建筑物提取后处理——轮廓规则化
对Toward Automatic Building Footprint Delineation From Aerial Images Using CNN and Regularization这篇文章进行了轮廓规则化的算法复现,效果如下。辛苦复现,发出来补贴家用,有需要源码的可以联系我,付费提供源码。...原创 2021-04-20 10:47:18 · 6203 阅读 · 16 评论 -
Sift关键点匹配与图像校正
使用SIFT进行两张图片的关键点特征提取;进而进行关键点匹配;对匹配后的关键点执行RANSAC粗差剔除;进而利用匹配关键点计算透视变换矩阵得到变换后的图片;import numpy as npimport cv2from matplotlib import pyplot as pltMIN_MATCH_COUNT = 10img1 = cv2.imread('x1.jpeg', 0)img2 = cv2.imread('x2.jpeg', 0)# Initiate SIFT d.原创 2021-04-20 10:41:19 · 1939 阅读 · 1 评论 -
python截断线性拉伸(对应ENVI软件中的Linear2%)
1. 原理简介在ENVI里面有Linear和Linear2%的线性拉伸的方法,用的最多的就是Linear2%.Linear方法较为简单: g(x,y)=(d - c) / (b - a) * (f(x, y) + c, 其中d和c分别是输出图像的最大值和最小值,b和a分别是原始图像的最大值和最小值,应用上式变换之后将小于c的灰度值赋值为0,大于d的灰度值赋值为255即可。Linear2%方法复杂一点,原理如下:读取原始图像后首先进行直方图统计,进而计算累计直方图,假定截断值为2,然后找到2原创 2020-12-17 09:27:27 · 3639 阅读 · 0 评论 -
非局部均值滤波-A non-local algorithm for image denoising
1. 简介Non-Local Means顾名思义,这是一种非局部平均算法。何为局部平均滤波算法呢?那是在一个目标像素周围区域平滑取均值的方法,所以非局部均值滤波就意味着它使用图像中的所有像素,这些像素根据某种相似度进行加权平均。滤波后图像清晰度高,而且不丢失细节。2. 原理该算法使用自然图像中普遍存在的冗余信息来去噪声。与双线性滤波、中值滤波等利用图像局部信息来滤波不同,它利用了整幅图像进行去噪。即以图像块为单位在图像中寻找相似区域,再对这些区域进行加权平均平均,较好地滤除图像中的高斯噪声。2.1原创 2020-12-17 09:27:36 · 3442 阅读 · 1 评论 -
增维型快速双边滤波-A Fast Approximation of the Bilateral Filter using a Signal Processing Approach
1. 简介双边滤波非常有用,但速度很慢,因为它是非线性的,传统的加速算法例如在FFT之后执行卷积,是不适用的。本文提出了对双边滤波的新解释,即高维卷积,然后是两个非线性操作。其基本思想就是将非线性的双边滤波改成可分离的线性操作和非线性操作。换句话说,原来的双边滤波在图像不同位置应用不同的权重,也就是位移改变卷积,他们通过增加一个维度,也就是将灰度值作为一个新的维度,将双边滤波表达成3D空间中的线性位移不变卷积,最后再执行非线性的归一化操作。2. 原理2.1 公式推导(1) 首先将原始双边滤波公式等原创 2020-12-17 09:28:08 · 2036 阅读 · 0 评论 -
联合双边滤波-Joint Bilateral Filter
1. 回顾: 双边滤波(BF)具体参考上篇博客:图像滤波之双边滤波2. 联合双边滤波(JBF)联合双边滤波与双边滤波之间的差别就是JBF用了一个引导图作为值域权重的计算依据,但是空间域权重计算仍然基于原图:3. 联合双边滤波代码3.1 python opencv实现import cv2import matplotlib.pyplot as pltif __name__ == "__main__": image = cv2.imread('lena512.bmp', 0)[20原创 2020-12-17 09:28:25 · 3233 阅读 · 1 评论 -
导向滤波-Guided Image Filtering
1. 简介之前已经介绍过了双边滤波核联合双边滤波,其中双边滤波是一种非线性的保边滤波器,而联合双边滤波相当于将值域高斯核的来源从原始影像替换成另外一副引导图。本文介绍的导向滤波,其与联合双边滤波类似,也需要除原始影像之外另外一副引导图,是一种保边滤波器,当然其也可以用作图像去雾、HDR压缩等。2. 算法原理2.1 导向滤波框架在算法框架中,要对p进行滤波而得到q,还得需要一个引导图像I。此时,滤波器的数学公式为:注意,这里的Wij(I)就表示由引导图像I来确定加权平均运算中所采用的权值,并且权值原创 2020-12-17 09:28:34 · 2336 阅读 · 1 评论 -
双边滤波
1. 简介之前介绍过的高斯滤波是一种共享卷积模板的滤波方法,对于图像的不同区域,执行相同的模糊操作,这会导致图像边缘模糊,今天介绍的双边滤波是在此基础上改进的一种保边滤波。总的来说,高斯滤波模板权重仅考虑距离模板中的距离,距离中心越远,权重越小;而双边滤波模板不仅考虑距离因素,还考虑中心位置的像素值与其余位置像素值的差异程度,亮度值越接近则权重越大,最后将距离模板和颜色模板相乘得到最终的模板。2. 原理距离核:颜色核:两者乘积:Sigma_color较大,则在邻域中的像素值相差较大的像原创 2020-12-15 21:08:16 · 1309 阅读 · 0 评论 -
高斯滤波
前言高斯滤波器是一种低通滤波器,可以去除低频分量,起到图像平滑的作用。此处高斯是指使用高斯函数作为滤波函数,对卷积模板对应的图像区域进行加权平均。1. 高斯滤波如图所示,原始图像经过高斯模板滑动加权平均之后,便得到模糊过后的输出图像。数学表达为:也就是说此处存在两个步骤,(1) 高斯模板的生成,(2) 滑窗卷积的实现。1.1 高斯模板的生成1.1.1 公式指导先放一张一维高斯函数的图示,可以看出,sigma越大,则高斯曲线越胖,周围值对中心影响越大,图像越模糊;sigma越小,高斯曲线原创 2020-12-15 21:08:35 · 7709 阅读 · 2 评论 -
python颜色校正
def calibrateColor(img, refrgb, global_scale): # img = np.array(img) imgrgb = cv2.mean(img) # 1. 全局颜色校正 if global_scale: scale = [refrgb[0] / imgrgb[0], refrgb[1] / imgrgb[1], refrgb[2] / imgrgb[2]] newImage = img.astype(np原创 2020-06-28 16:37:10 · 2656 阅读 · 3 评论 -
python 模板匹配原理与实战
1. 简述为了让大家不至于看到后面的公式就退却,我先简单描述一下模板匹配的原理:简单来说,模板匹配就是你拿一个模板(图片)在目标图片上依次滑动,每次计算模板与模板下方的子图的相似度,最后我们就计算出了非常多的相似度;如果你只是单个目标的匹配,那你只需要取相似度最大值所在的位置就可以得出匹配位置;如果你要匹配多个目标,那就设定一个阈值,就是说,只要咋俩的相似度大于比如0.8,我就认为你是我要匹配的目标。2. 原理2.1 原理步骤你有一张模板图像TTT和一张较大的待搜索图像III,模板匹配是原创 2020-05-15 17:46:53 · 7003 阅读 · 10 评论 -
常用python图像处理库的形状相关参数顺序,宽高还是高宽
1. 首先声明以前做的绝大部分数据集都是做的正方形输入,没太在意这个参数,慢慢接触一些非规整数据集,这个问题每次都得自己查,试一试,怪烦的,以此为书,与诸位同鉴。个人喜欢使用行列的说法,多少行就是指高度,多少列就是指宽度。一般情况下,形状参数都是(行,列,通道),但是要注意,有的库里面个别与形状有关的函数他就是正好相反的,一定要注意,这里做一个简单的整理。正常:(行, 列)or(高,宽)Libraryreadresizecv2正常反常PIL反常反常ski原创 2020-05-15 15:50:03 · 1467 阅读 · 0 评论 -
SIFT算子总结
目录1.SIFT简介1.1 SIFT算法具的特点1.2 SIFT特征检测的步骤2. 尺度空间2.1 多分辨率图像金字塔2.2 高斯尺度空间3. DoG空间极值检测4. 删除不好的极值点(特征点)4.1 剔除低对比度的特征点4.2 剔除不稳定的边缘响应点5. 求取特征点的主方向6. 生成特征描述7. 总结8. python-opencv ...转载 2019-05-07 15:35:09 · 8957 阅读 · 1 评论 -
Matlab 图像处理与计算机视觉工具箱
目录1.常用工具箱1.1 VLFeat:著名而常用1.2 MexOpenCV:让Matlab支持调用的OpenCV1.3Peter Kovesi的工具箱:轻量好用,侧重图像处理1.4 Machine Vision Toolbox:侧重机器视觉、三维视觉1.5Piotr's Image & Video Matlab Toolbox:侧重物体识别1.6 DI...转载 2018-02-09 21:45:49 · 7399 阅读 · 0 评论