OpenCV
文章平均质量分 56
Yicsr
要做咸鱼里,最能扑腾的那一条。
展开
-
OpenCV-RANSAC随机抽样一致算法
目录概念单应性矩阵(细节多,简单了解)举例代码实现(由于专利,所以没有代码提供)参考概念第一步:假定模型(如直线方程),并随机抽取Nums个(以2个为例)样本点,对模型进行拟合。第二步:由于不是严格线性,数据点都有一定波动,假设容差范围为:sigma,找出距离拟合曲线容差范围内的点,并统计点的个数。第三步:重新随机选取Nums个点,重复第一步~第二步的操作,直到结束迭代第四步:每一次拟合后,容差范围内都有对应的数据点数,找出数据点个数最多的情况,就是最终的拟合结果单应性矩阵(细节多,简单原创 2021-09-15 16:35:23 · 455 阅读 · 0 评论 -
OpenCV-sift、高斯拆分金字塔和特征匹配、Brute-Force蛮力匹配
目录尺度空间定义高斯差分金字塔概念特征关键点定位一维情况:三维消除边界响应特征点的主方向生成特征描述SIFT算法代码实现版本问题需要降版本使用代码特征匹配Brute-Force蛮力匹配1对1的匹配尺度空间定义图像尺度空间SIFT(Scale Invariant Feature Transform)在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然而计算机要有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同的尺度下都存在的特点。尺度空间的获取通常使用原创 2021-09-15 15:23:19 · 314 阅读 · 0 评论 -
OpenCV-图像特征-harris角点检测
目录概念第一步:计算一个梯度 Ix,Iy第二步:整合矩阵,计算特征值第三步:比较特征值的大小第四步: 非极大值抑制,把真正的角点留下来,角点周围的过滤掉代码实现概念第一步:计算一个梯度 Ix,Iy第二步:整合矩阵,计算特征值第三步:比较特征值的大小第四步: 非极大值抑制,把真正的角点留下来,角点周围的过滤掉代码实现import cv2import numpy as npimg =cv2.imread('pie.png')print('img.shape',img.原创 2021-09-13 14:15:09 · 179 阅读 · 0 评论 -
OpenCV-傅里叶概述、傅里叶变换、滤波、频域转换、低筒滤波、高通滤波
目录傅里叶变换傅里叶变换的作用滤波频域变换结果低通和高通滤波低通滤波高通滤波傅里叶变换在频域中一切都是静止的。傅里叶分析之掐死教程傅里叶变换的作用滤波频域变换结果import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('girl.png',0)img_float32 = np.float32(img)dft = cv2.dft(img_float32,flags原创 2021-09-08 14:39:58 · 416 阅读 · 0 评论 -
OpenCV-直方图定义、直方图均衡化原理、均衡化效果、自适应直方图均衡化
目录概念选取像素点、统计个数创建mask直方图均衡化自适应直方图均衡化概念选取像素点、统计个数(256,1)256:0-2551:每个值里面:0出现多少个,1多少个,255多少个import cv2img = cv2.imread('girl.png',0)#0表示灰度图cv2.imshow('img',img)cv2.waitKey(0)cv2.destroyAllWindows()hist = cv2.calcHist([img],[0],None,[256],[0,25原创 2021-09-08 11:55:07 · 1225 阅读 · 1 评论 -
OpenCV-模板匹配 单个对象匹配、多个对象匹配
目录概念步骤单个对象匹配代码实现一代码实现二多个对象匹配代码实现概念模板匹配与剪辑原理很像,模板在原图像上从原点开始浮动,计算模板(图像被模板覆盖的地方)的差别程度,这个差别程度的计算方法在opencv里有六中,人后将每次计算的结果放入一个矩阵里面,作为输出结果。加入原图形是A*B大小,则输出结果的矩阵是(A-a+1)(B-b+1)匹配完之后,告诉你每一个位置的结果,(结果会因为匹配算法不同而不同)官网建议用带归一化的,更可靠步骤单个目标的模板匹配代码:第一步:读入目标图片,读入模板原创 2021-09-07 13:09:48 · 6512 阅读 · 0 评论 -
OpenCV-图像轮廓 轮廓特征、轮廓周长和面积、轮廓近似、外接矩形和外接圆
目录概念代码实现得到轮廓之后,计算轮廓的周长和面积轮廓近似外接矩形和外接圆概念代码实现得到轮廓之后,计算轮廓的周长和面积得到轮廓的周长和面积使用cv2.findCountor获得的轮廓contours是一个嵌套的类型,即我们可以通过cnt = contours获得第25个物体的轮廓值cnt = contours[24]#面积cv2.contourArea(cnt)length= cv2.arcLength(cnt, True)print(area, leng原创 2021-09-07 10:59:25 · 1546 阅读 · 0 评论 -
OpenCV-图像金字塔 高斯金字塔 拉普拉斯金字塔
目录概念向下采样方法(缩小)向上采样方法(放大)代码实现第一步读取图片第二步:使用cv2.pyrUp进行图像金字塔的上采样或者下采样拉普拉斯金字塔概念向下采样方法(缩小)向上采样方法(放大)代码实现第一步读取图片import cv2import numpy as npdef cv_show(name,image): cv2.imshow(name,image) cv2.waitKey(0) cv2.destoryAllWindows()img = cv2.im原创 2021-09-07 09:40:57 · 151 阅读 · 0 评论 -
OpenCV-Canny边缘检测
目录概念1.高斯滤波器2.梯度和方向(sobel算子)4.双阙值检测代码实现概念双阈值:检测过程中,可能不是边界,就要在过滤,只保留最真实的那一些。第一步:使用高斯滤波器进行滤波,去除噪音点第二步:使用sobel算子,计算出每个点的梯度大小和梯度方向第三步:使用非极大值抑制(只有最大的保留),消除边缘检测带来的杂散效应第四步:应用双阈值,来确定真实和潜在的边缘第五步:通过抑制弱边缘来完成最终的边缘检测1.高斯滤波器2.梯度和方向(sobel算子)3.非极大值抑制(两种方原创 2021-09-07 08:54:22 · 128 阅读 · 0 评论 -
OpenCV-图像阈值、图像平滑(均值滤波、方框滤波、高斯滤波、中值滤波)
图像阈值import cv2import numpy as npimport osimport matplotlib.pyplot as pltimg_gray = cv2.imread('huigirl.jpg')ret,thresh1 = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY)ret,thresh2 = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY_INV)ret,th原创 2021-09-06 17:37:32 · 412 阅读 · 0 评论 -
OpenCV-图像梯度-Scharr算子、laplacian算子、sobel算子对比
cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_64F允许结果是负值, dx表示x轴方向算子,dy表示y轴方向算子2.cv2.laplacian(src, ddepth) 使用拉普拉斯算子进行计算参数说明: src表示输入的图片,ddepth表示图片的深度,这里使用cv2.CV_64F允许结果是负值scharr算子, 从图中我们可以看出scharr算子,..原创 2021-09-06 16:44:58 · 902 阅读 · 0 评论 -
OpenCV-图像梯度 sobel算子
# 第一步:载入原始图片# 第二步:使用cv2.Sobel(src, cv2.CV_64F, 1, 0, ksize=3) 对x轴方向进行sobel算子相乘操作# 第三步:由于会出现负值的情况,因此使用cv2.convertScalerAbs() 转换为绝对值的形式# 第四步:计算y轴方向上的sobel算子# 第五步:使用cv2.addWeighted 将x轴方向的sobel算子的结果和y轴方向上的sobel算子的结果结合# 第六步:使用cv2.Sobel(src, cv2.CV...原创 2021-09-06 15:47:03 · 435 阅读 · 0 评论 -
OpenCV-腐蚀与膨胀操作 开运算闭运算 礼帽黑帽
目录原创 2021-09-06 14:10:16 · 405 阅读 · 0 评论 -
OpenCV-图像基本操作 图像截取特定区域、颜色通道提取、边界填充、数值计算、图像融合
将图片转换为像素的矩阵from matplotlib import pyplot as plt 的基本用法简介import cv2import matplotlib.pyplot as pltimport numpy as np%matplotlib inlineimg=cv2.imread('man.jpg')imgimgarray([[[ 2, 2, 2], [ 2, 2, 2], [ 2, 2, 2], .原创 2021-09-06 11:15:57 · 13099 阅读 · 0 评论 -
OpenCV 安装配置 Jupyter Notebook
pip install opencv-pythonpip install opencv-contrib-python启动① 默认端口启动在终端中输入以下命令:jupyter notebook浏览器地址栏中默认地将会显示:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。Jupyter Notebook介绍、安装及使用教程新建python文件...原创 2021-09-01 10:37:08 · 5348 阅读 · 0 评论