计算机视觉基础图片处理
文章平均质量分 85
计算机视觉基础图片处理
Clark-dj
唯有扎下心来做事情学东西才是硬道理!
博客都是平时的一些学习笔记,很多都是自学,难免会有错误和不足之处,望留言指出。一些分享若有侵权,马上删除。
展开
-
【opencv】SIFT尺度不变特征变换
1. 尺度空间极值检测2. 关键点定位3. 方向分配4. 关键点描述5. 关键点匹配转载 2022-01-17 13:13:33 · 268 阅读 · 0 评论 -
【opencv】Shi-tomas拐角检测器(旋转不变角点检测)
指定要查找的角数。指定质量级别,该值是介于0-1之间的值,该值表示每个角落都被拒绝的最低拐角质量。提供检测到的角之间的最小欧式距离。利用所有这些信息,该功能可以找到图像中的拐角。低于平均质量的所有拐角点均被拒绝。根据质量以降序对剩余的角进行排序。然后函数首先获取最佳拐角,然后丢弃最小距离范围内的所有附近拐角,然后返回N个最佳拐角。转载 2022-01-17 13:02:15 · 611 阅读 · 0 评论 -
【opencv】理解特征、哈里斯角检测(旋转不变角点检测)
角点是一个比较好的特征,哈里斯角检测可以检测角点,还可以通过调节精度,得到比较准确的角点。http://woshicver.com/Sixth/5_1_%E7%90%86%E8%A7%A3%E7%89%B9%E5%BE%81/http://woshicver.com/Sixth/5_2_%E5%93%88%E9%87%8C%E6%96%AF%E8%A7%92%E6%A3%80%E6%B5%8B/转载 2022-01-17 12:57:12 · 485 阅读 · 0 评论 -
【opencv】交互式前景提取使用GrabCut算法
计算机根据我们提供的数据进行初始标记。它标记前景和背景像素(或对其进行硬标记)现在使用高斯混合模型(GMM)对前景和背景进行建模。 根据我们提供的数据,GMM可以学习并创建新的像素分布。也就是说,未知像素根据颜色统计上与其他硬标记像素的关系而被标记为可能的前景或可能的背景(就像聚类一样)。根据此像素分布构建图形。图中的节点为像素。添加了另外两个节点,即“源”节点和“接收器”节点。每个前景像素都连接到源节点,每个背景像素都连接到接收器节点。转载 2022-01-12 14:15:02 · 752 阅读 · 0 评论 -
【opencv】图像分割与Watershed算法(使用分水岭算法实现基于标记的图像分割 ,使用距离变换和分水岭来分割相互接触的对象)
任何灰度图像都可以看作是一个地形表面,其中高强度表示山峰,低强度表示山谷。OpenCV实现了一个基于标记的分水岭算法,你可以指定哪些是要合并的山谷点,哪些不是。使用距离变换和分水岭来分割相互接触的对象转载 2022-01-12 13:32:52 · 639 阅读 · 0 评论 -
【opencv】霍夫圈变换(查找图像中的圆,3D累加器进行霍夫变换,用边缘的梯度信息的Hough梯度方法。)
圆的表示有3个参数,因此我们需要3D累加器进行霍夫变换,这将非常低效。因此,OpenCV使用更加技巧性的方法,即使用边缘的梯度信息的Hough梯度方法(Hough梯度需要再关注了解一下)。原创 2022-01-12 13:20:12 · 1101 阅读 · 0 评论 -
【opencv】霍夫线变换(检测图像中的线条)
如果可以用数学形式表示形状,则霍夫变换是一种检测任何形状的流行技术。即使形状有些破损或变形,也可以检测出形状。我们将看到它如何作用于一条线。(原理有点没看明白)在应用霍夫变换之前,请应用阈值或使用Canny边缘检测。概率霍夫变换是我们看到的霍夫变换的优化。它没有考虑所有要点。取而代之的是,它仅采用随机的点子集,足以进行线检测。只是我们必须降低阈值。转载 2022-01-12 13:16:04 · 6979 阅读 · 0 评论 -
【oepncv】模板匹配(只是将模板图像滑动到输入图像上(就像在2D卷积中一样),多对象的模板匹配)
模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。OpenCV带有一个函数**cv.matchTemplate**()。 它只是将模板图像滑动到输入图像上(就像在2D卷积中一样),然后在模板图像下比较模板和输入图像的拼图。转载 2022-01-12 13:00:44 · 286 阅读 · 0 评论 -
【opencv】傅里叶变换(分析各种滤波器的频率特性,高通滤波是边缘检测操作,删除高频模糊图像)
傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用**2D离散傅里叶变换**(DFT)查找频域。一种称为**快速傅立叶变换**(FFT)的快速算法用于DFT的计算。更直观地说,对于正弦信号,如果幅度在短时间内变化如此之快,则可以说它是高频信号。如果变化缓慢,则为低频信号。您可以将相同的想法扩展到图像。图像中的振幅在哪里急剧变化?在边缘点或噪声。因此,可以说边缘和噪声是图像中的高频内容。如果幅度没有太大变化,则它是低频分量。高通滤波是边缘检测操作转载 2022-01-12 12:56:03 · 2070 阅读 · 0 评论 -
【opencv】直方图4:直方图反投影(利用颜色直方图查找感兴趣对象)
利用颜色直方图查找感兴趣对象:计算出属于感兴趣区域的每个像素的概率并将其显示出来。在适当的阈值下产生的输出使我们仅获得感兴趣区域(个人理解适应与颜色对比明显的感兴趣区域提取)。转载 2022-01-12 12:24:57 · 283 阅读 · 0 评论 -
【opencv】直方图-3:二维直方图(一维灰度强度,二维色相饱和度,)
一维直方图仅考虑一个特征,即像素的灰度强度值。二维直方图要考虑两个特征。 通常,它用于查找颜色直方图,其中两个特征是每个像素的色相和饱和度值。OpenCV和Numpy都可以查看二维直方图三种方式绘制二维直方图:使用 cv.imshow()、使用Matplotlib、OpenCV示例样式转载 2022-01-11 18:16:13 · 1467 阅读 · 0 评论 -
【opencv】直方图均衡(提高对比度)
直方图均衡化会提高图像的对比度。通过一个转换函数,将亮区域的输入像素映射到整个区域的输出像素。这就是直方图均衡化的作用。(使所有的图像具有相同的照明条件)当图像的直方图限制在特定区域时,直方图均衡化效果很好。在直方图覆盖较大区域(即同时存在亮像素和暗像素)的强度变化较大的地方,效果不好。直方图均衡后,背景对比度确实得到了改善。但是由于亮度过高,丢失了大多数信息。这是因为它的直方图不像我们在前面的案例中所看到的那样局限于特定区域。为了解决这个问题,使用了**自适应直方图均衡**。转载 2022-01-11 18:07:14 · 2168 阅读 · 0 评论 -
【opencv】直方图-1:查找、绘制和分析
从直方图总体了解图像的强度分布。它是在X轴上具有像素值(不总是从0到255的范围),在Y轴上具有图像中相应像素数的图。(像素值的统计)通过查看图像的直方图,可以直观地了解该图像的对比度,亮度,强度分布等。寻找直方图:两种方法:OpenCV和Numpy都为此内置了功能。绘制直方图:有两种方法, 1. 简短的方法:使用Matplotlib绘图功能 2. 稍长的方法:使用OpenCV绘图功能找到图像某些区域的直方图?只需创建一个掩码图像,在你要找到直方图为白色,否则黑色。然后把这个作为掩码传递。转载 2022-01-11 17:53:49 · 461 阅读 · 0 评论 -
【opencv】轮廓分层()
1. RETR_LIST这是四个标志中最简单的一个(从解释的角度来看)。它只是检索所有的轮廓,但不创建任何亲子关系。在这个规则下,父轮廓和子轮廓是平等的,他们只是轮廓。他们都属于同一层级。2. RETR_EXTERNAL如果使用此标志,它只返回极端外部标志。所有孩子的轮廓都被留下了。我们可以说,根据这项规则,每个家庭只有长子得到关注。它不关心家庭的其他成员:)。3. RETR_CCOMP此标志检索所有轮廓并将其排列为2级层次结构。物体的外部轮廓(即物体的边界)放在层次结构-1中。对象内部孔洞的轮转载 2022-01-11 17:25:13 · 1078 阅读 · 0 评论 -
【opencv】轮廓:更多属性(凸包上的任何偏差:凸性缺陷、点到轮廓线的最短距离、比较两个形状或两个轮廓,并返回一个显示相似性的度量)
【opencv】轮廓:更多属性(凸包上的任何偏差:凸性缺陷、点到轮廓线的最短距离、比较两个形状或两个轮廓,并返回一个显示相似性的度量)OpenCV附带一个函数**cv.matchShapes**(),该函数使我们能够比较两个形状或两个轮廓,并返回一个显示相似性的度量。结果越低,匹配越好。它是根据矩值计算出来的。转载 2022-01-11 14:03:38 · 523 阅读 · 0 评论 -
【opencv】轮廓属性(长宽比,范围,坚实度,等效直径,物体指向角度,掩码和像素点,平均颜色,极端点)
【opencv】轮廓属性(长宽比,范围,坚实度,等效直径,物体指向角度,掩码和像素点,平均颜色,极端点)转载 2022-01-11 11:34:56 · 4571 阅读 · 1 评论 -
【opencv】轮廓特征(质心,面积,周长,近似轮廓,凸包,凸度,边界矩形,直角矩形,旋转矩形,最小闭合圈,拟合椭圆、直线)
4_9_2_轮廓特征 - OpenCV中文官方文档找到轮廓的不同特征,例如面积,周长,质心,边界框等。1. 特征矩特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等。请查看特征矩上的维基百科页面。函数**cv.moments**()提供了所有计算出的矩值的字典。见下文:import numpy as npimport cv2 as cvimg = cv.imread('star.jpg',0)ret,thresh = cv.threshold(img,127,255.转载 2022-01-11 11:24:41 · 2912 阅读 · 1 评论 -
【opencv】轮廓
轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。转载 2022-01-11 10:16:30 · 441 阅读 · 0 评论 -
【opencv】图像金字塔(不同分辨率的(相同)图像、拉普拉斯金字塔图像仅限边缘图像、使用金字塔进行图像融合)
图像金字塔(不同分辨率的(相同)图像、拉普拉斯金字塔图像仅限边缘图像、使用金字塔进行图像融合)转载 2022-01-10 23:30:07 · 697 阅读 · 0 评论 -
【opencv】Canny边缘检测(降噪、小像素噪声)
4_7_Canny边缘检测 - OpenCV中文官方文档理论Canny Edge Detection是一种流行的边缘检测算法。它由John F. Canny发明 这是一个多阶段算法,我们将经历每个阶段。 降噪 由于边缘检测容易受到图像中噪声的影响,因此第一步是使用5x5高斯滤波器消除图像中的噪声。我们已经在前面的章节中看到了这一点。 查找图像的强度梯度 然后使用Sobel核(图像梯度章节)在水平和垂直方向上对平滑的图像进行滤波,以在水平方向(Gx)和垂直方向..转载 2022-01-10 23:02:28 · 1583 阅读 · 0 评论 -
【opencv】关于透视变换
学习opencv透视变换的时候联想到之前红外匹配的项目,关于变换矩阵的求解,简单记录一下学习到的相关博客。原创 2022-01-10 21:30:49 · 953 阅读 · 0 评论 -
【oepncv】图像梯度(查找图像梯度,边缘,三种类型的梯度滤波器或高通滤波器、抗噪声)
【oepncv】图像梯度(查找图像梯度,边缘,三种类型的梯度滤波器或高通滤波器、抗噪声)转载 2022-01-10 22:38:40 · 400 阅读 · 0 评论 -
【opencv】形态学转换(白色噪声、黑色小孔、毛刺、梯度边缘)
4_5_形态转换 - OpenCV中文官方文档部分代码部分没有转载,点击原链接吧,我就放个效果图,方便自己以后查看。学习不同的形态学操作,例如侵蚀,膨胀,开运算,闭运算等。理论形态变换是一些基于图像形状的简单操作。通常在二进制图像上执行。 它需要两个输入,一个是我们的原始图像,第二个是决定**操作性质的结构元素**或**内核**。 两种基本的形态学算子是侵蚀和膨胀。然后,它的变体形式(如“打开”,“关闭”,“渐变”等)也开始起作用。1. 侵蚀侵蚀的基本...转载 2022-01-10 22:23:44 · 2478 阅读 · 0 评论 -
【opencv】图像平滑(和去噪有关、高斯滤波、椒盐噪声、保留边缘消除噪声)
4_4_图像平滑 - OpenCV中文官方文档代码部分没有转载,点击原链接吧,我就放个效果图,方便自己以后查看。2D卷积(图像过滤)与一维信号一样,还可以使用各种低通滤波器(LPF),高通滤波器(HPF)等对图像进行滤波。 LPF有助于消除噪声,使图像模糊等。 HPF滤波器有助于在图像中找到边缘。OpenCV提供了一个函数**cv.filter2D**来将内核与图像进行卷积。例如,我们将尝试对图像进行平均滤波。5x5平均滤波器内核如下所示:操作如下:保持这个内核在一个像素上..转载 2022-01-10 21:58:17 · 1753 阅读 · 0 评论 -
形态学滤波——python实现开运算、闭运算、形态学梯度、顶帽、黑帽
一、几种运算之间的区别与特点 运算类型 操作 目的 开运算 先腐蚀再膨胀 可在纤细点出分离物体。有助于消除噪音 闭运算 先膨胀后腐蚀 用于排除前景对象中的小孔或对象上的小黑点 形态学梯度 膨胀图与腐蚀图之差 用于保留目标物体的边缘轮廓 顶帽转载 2020-10-28 18:47:58 · 1746 阅读 · 0 评论 -
形态学图像处理——腐蚀和膨胀
一、基础理论1、形态学概述图像处理中的形态学往往指的是数学形态学。2、数学形态学建立在格论和拓扑学基础之上的图像分析学科,是数字形态学图像图像处理的基本理论。 其基本的运算包括二值化腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中于击不中变换、形态学梯度、 Top-hat变换、颗粒分析、流域变换、灰度腐蚀和膨胀、灰度开闭运算、灰值形态学梯度等。3、膨胀与腐蚀的功能:消除噪声; 分割出独立的图像元素,在图像中连接相邻的元素; 寻找图像中的明细的极大值区域或极小值区域; 求出图像转载 2020-10-28 18:37:31 · 9144 阅读 · 1 评论 -
高斯均值滤波源码实现
高斯均值滤波源码实现高斯# 高斯API 原图有问题有噪声小点import cv2import numpy as npimg = cv2.imread('image11.jpg',1)cv2.imshow('src',img)dst = cv2.GaussianBlur(img,(5,5),1.5)cv2.imshow('dst',dst)cv2.waitKey(0)结果 缺...原创 2020-03-23 18:36:47 · 327 阅读 · 1 评论 -
灰度图像直方图均衡化源码
灰度图像直方图均衡化源码# 本质:统计每个像素灰度 出现的概率 0-255 p# 累计概率 # 1 0.2 0.2# 2 0.3 0.5# 3 0.1 0.6# 256 # 100 0.5 255*0.5 = new import cv2import numpy as npimport matplotlib.pyplot as plt%matplotlib inline...原创 2020-03-23 18:34:15 · 748 阅读 · 0 评论 -
彩色图像直方图均衡化源码
彩色图像直方图均衡化源码# 本质:统计每个像素灰度 出现的概率 0-255 p# 累计概率 # 1 0.2 0.2# 2 0.3 0.5# 3 0.1 0.6# 256 # 100 0.5 255*0.5 = new # 1 统计每个颜色出现的概率 2 累计概率 1 3 0-255 255*p# 4 pixel import cv2import numpy as np...原创 2020-03-23 18:32:57 · 362 阅读 · 0 评论 -
API直方图均衡化
图片美化之直方图均衡化灰度直方图均衡化#灰度 直方图均衡化import cv2import numpy as npimg = cv2.imread('image0.jpg',1)# 转化为灰度图片gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)cv2.imshow('src',gray)# 调用API 实现均衡化dst = cv2.equa...原创 2020-03-23 18:31:44 · 219 阅读 · 0 评论 -
灰度图像直方图源码
灰度图像直方图源码# 1 0-255 2 概率 # 本质:统计每个像素灰度 出现的概率 0-255 pimport cv2import numpy as npimport matplotlib.pyplot as plt%matplotlib inline #出现问题后添加的代码 img = cv2.imread('image0.jpg',1)imgInfo = img.shape...原创 2020-03-23 18:28:26 · 610 阅读 · 0 评论 -
彩色图像直方图源码
彩色图像直方图源码# 本质:统计每个像素灰度 出现的概率 0-255 pimport cv2import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimg = cv2.imread('image0.jpg',1)imgInfo = img.shapeheight = imgInfo[0]width = ...原创 2020-03-23 18:27:29 · 309 阅读 · 0 评论 -
API彩色直方图
图片美化彩色直方图直方图描述像素统计信息RGB三种颜色直方图横坐标:0-255 的颜色等级,共256种纵坐标:每个颜色等级在整张图片出现的概率,0-1之间直方图均衡化:直方图没有均匀分布而是集中在了某一处需要均衡化进行离散化,均衡化优化图片import cv2import numpy as npdef ImageHist(image,type): color = (2...原创 2020-03-23 18:24:11 · 263 阅读 · 0 评论 -
9磨皮美白
磨皮美白# API双边滤波import cv2img = cv2.imread('cdj.png',1)cv2.imshow('src',img)# API双边滤波结果dst = cv2.bilateralFilter(img,15,35,35)cv2.imshow('dst',dst)cv2.waitKey(0)问题error ...原创 2020-03-23 18:22:27 · 228 阅读 · 0 评论 -
8亮度增强
亮度增强# p = p+40import cv2import numpy as npimg = cv2.imread('image0.jpg',1)imgInfo = img.shapeheight = imgInfo[0]width = imgInfo[1]cv2.imshow('src',img)dst = np.zeros((height,width,3),np.uint8...原创 2020-03-23 18:21:26 · 348 阅读 · 0 评论 -
7绘制矩形圆形
矩形矩形、圆形和任意多边形绘制#代码综合在一起了,学习的时候拆开学习就行import cv2import numpy as npnewImageInfo = (500,500,3)dst = np.zeros(newImageInfo,np.uint8)# 矩形 1 rectangle 当前目标图像 2 左上角起始点 3 右下角 4颜色 5是否填充 -1填充 fill -1 >0...原创 2020-03-23 18:18:35 · 536 阅读 · 0 评论 -
6绘制图形线段
形状绘制绘制普通线段import cv2import numpy as npnewImageInfo = (500,500,3) # 宽高深度dst = np.zeros(newImageInfo,np.uint8)# 方法line# 绘制线段line 1 目标图片数据dst 2 开始位置begin 3 结束位置end 4 颜色colorcv2.line(dst,(100,100)...原创 2020-03-23 18:15:53 · 2092 阅读 · 0 评论 -
5绘制文字图片
文字图片绘制文字绘制import cv2 import numpy as npimg = cv2.imread('image0.jpg',1)# 字体font = cv2.FONT_HERSHEY_SIMPLEX# 绘制方框cv2.rectangle(img,(200,100),(500,400),(0,255,0),3)# 文字绘制# 1 原图片dst 2 输出文字内容 3 ...原创 2020-03-23 18:11:42 · 239 阅读 · 0 评论 -
4修补图片
图片修补损坏图片import cv2 import numpy as npimg = cv2.imread('image0.jpg',1)# 图片损坏 划线for i in range(200,300): img[i,200] = (255,255,255) img[i,200+1] = (255,255,255) img[i,200-1] = (255,2...原创 2020-03-23 18:09:45 · 330 阅读 · 0 评论 -
3灰度颜色反转毛玻璃融合边缘浮雕颜色油画
图像特效一、灰度处理1法一#imread #方法1 imread import cv2img0 = cv2.imread('image0.jpg',0)img1 = cv2.imread('image0.jpg',1)print(img0.shape)print(img1.shape) #有色图片三维 深度信息cv2.imshow('src',img0)cv2.waitK...原创 2020-03-23 18:08:18 · 428 阅读 · 0 评论