自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒江之雪,披蓑独钓的博客

人生苦短,使用Python,拥抱开源,共创辉煌。

  • 博客(109)
  • 收藏
  • 关注

原创 Python机器视觉--OpenCV进阶(核心)-边缘检测之SURF特征检测

SURF特征是一种图像的局部特征,当目标图像发生旋转、尺度缩放、亮度变化时,具有保持不变性,并且对视角变化、仿射变换和噪声等也具有保持一定程度的稳定性。SURF特征提取算法的流程主要包括:特征点检测、特征点描述和特征点匹配三部分。特征点检测采用了基于Hessian矩阵的检测器,其在稳定性和可重复性方面都优于基于Harris的检测器。特征点描述采用Haar小波作为特征描述子,由于Harr特征最大的特点是速度快,能减少计算时间且增加稳健性。

2022-09-25 08:04:24 1257 2

原创 Python机器视觉--OpenCV进阶(核心)-边缘检测之SIFT关键点检测

SIFT关键点检测 图像尺度空间,多分辨率金字塔,高斯差分金字塔,DOG局部极值检测,关键点的精确定位,特征点的主方向,生成特征描述 等原理 与 SIFT基于OpenCV实现

2022-09-25 07:56:42 1944

原创 Python机器视觉--OpenCV进阶(核心)-边缘检测之Harris角点检测与Shi-Tomasi角点检测

Harris角点检测是基于Moravec角点检测之上的, Moravec角点检测算子的思想其实特别简单,在图像上取一个W*W的“滑动窗口”,不断的移动这个窗口并检测窗口中的像素变化情况E。这样就不用调整k值了。W(x,y)W(x,y)是以点(x,y)(x,y)为中心的窗口,即为加权函数,例如高斯加权函数。Harris角点检测计算的稳定性和K有关, 而K是一个经验值, 不太好设定最佳的K值.图像 I(x,y) I(x,y),当在点(x,y)(x,y)处平移(Shi-Tomasi是Harris角点检测的改进.

2022-09-19 08:00:00 864

原创 Python机器视觉--OpenCV进阶(核心)--特征检测与匹配基本概念解释与实现(大合集)

它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征检测的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。Harris角点检测,Shi-Tomsi角点检测以及SIFI关键点检测等将在后续文章中进行更新 预计以日更的形式在本周(20220919-20220924)内完成更新。图像特征就是值有意义的图像区域, 具有独特性, 易于识别性, 比较角点, 斑点以及高密度区.特征检测包括边缘检测, 角检测, 区域检测和脊检测.图像搜索, 比如以图搜图。

2022-09-18 11:10:45 1304

原创 Python机器视觉--OpenCV进阶(核心)--图像直方图与掩膜直方图与直方图均衡化

图直方图是用一表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。这种直方图中,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此,一张较暗图片的图像直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。直方图均衡化是通过拉伸像素强度的分布范围,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表.横坐标: 图像中各个像素点的灰度级。:需要统计的特征的数目。

2022-09-18 10:45:01 1067

原创 Python机器视觉--OpenCV进阶(核心)--图像金字塔(高斯金字塔与拉普拉斯金字塔)

图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说, 图像金字塔是同一图像不同分辨率的子图集合.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

2022-09-18 10:12:31 1877

原创 Python机器视觉--OpenCV进阶(核心)--图像轮廓的多边形逼近与凸包,外接矩形

图像轮廓的多边形逼近与凸包,外接矩形

2022-09-12 09:44:45 1882

原创 Python机器视觉--OpenCV进阶(核心)--图像轮廓查找识别,绘制图像轮廓与图像轮廓的面积周长计算

图像轮廓查找识别,绘制图像轮廓与图像轮廓的面积周长计算

2022-09-12 09:29:33 1973

原创 Python机器视觉--OpenCV进阶(核心)--图像的开,闭运算,形态学梯度,顶帽,黑帽运算

图像的开,闭运算,形态学梯度,顶帽,黑帽运算

2022-09-12 08:47:36 1515

原创 Python机器视觉--OpenCV进阶(核心)--形态学概述与图像的腐蚀,膨胀操作与自动获取形态学卷积核

什么是形态学指一系列处理图像形状特征的图像处理技术形态学的基本思想是利用一种特殊的结构元(本质上就是卷积核)来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析和目标识别。这些处理方法基本是对二进制图像进行处理, 即黑白图像卷积核决定着图像处理后的效果形态学常用基本操作有:膨胀和腐蚀开运算闭运算顶帽黑帽。...

2022-08-28 15:44:55 1689 1

原创 Python机器视觉--OpenCV进阶(核心)--图像二值化

在前面的部分我们使用是全局阈值,整幅图像采用同一个数作为阈值。当时这种方法并不适应与所有情况,尤其是当同一幅图像上的不同部分的具有不同亮度时。这种情况下我们需要采用自适应阈值。此时的阈值是根据图像上的每一个小区域计算与其对应的阈值。因此在同一幅图像上的不同区域采用的是不同的阈值,从而使我们能在亮度不同的情况下得到更好的结果。二值化: 将图像的每个像素变成两种值, 比如0, 255.maxval: 最大值, 最大值不一定是255。src 最好是灰度图。thresh: 阈值。...

2022-08-28 15:20:29 2799 1

原创 Python机器视觉--OpenCV进阶(核心)--常用高通滤波器(索贝尔(sobel)算子,沙尔(Scharr)算子,拉普拉斯(Laplacian)算子, Canny算子)

常用高通滤波器(索贝尔(sobel)算子,沙尔(Scharr)算子,拉普拉斯(Laplacian)算子, Canny算子) 的介绍与实现

2022-08-21 11:57:23 2753

原创 Python机器视觉--OpenCV进阶(核心)--常用低通滤波器(方盒滤波器,均值滤波器,高斯滤波器,中值滤波器,双边滤波器)

OpenCV之低通滤波器介绍

2022-08-21 11:04:04 2057

原创 Python机器视觉--OpenCV进阶(核心)--滤波器之卷积介绍

OpenCV 滤波器之卷积

2022-08-21 09:58:48 1746

原创 Python机器视觉--OpenCV入门(重要)--图像的基本变换

图像的 平移 旋转 放大 缩小 仿射变换

2022-08-13 19:12:51 1236 1

原创 Python机器视觉--OpenCV入门(重要)--图像的算术(加减乘除)运算与位运算

图片的融合操作相当于对图片进行线性运算 w1* x1 + w2 * x2 + b. 其中alpha是第一个权重参数, beta是第二个权重参数, gamma是偏差.opencv使用subtract来执行图像的减法运算, 图像对应位置的元素相减, 如果减完小于0, 统一变成0.图片就是矩阵, 图片的加法运算就是矩阵的加法运算, 这就要求加法运算的两张图shape必须是相同的.bitwise_xor 异或运算 对应元素做异或运算。bitwise_or 或运算 对应元素做或运算。...

2022-08-13 18:32:45 1353

原创 Python机器视觉--OpenCV入门--OpenCV鼠标绘制图形

利用OpenCV提供的绘制图形API可以轻松在图像上绘制各种图形, 比如直线, 矩形, 圆, 椭圆等图形.line(img, pt1, pt2, color, thickness, lineType, shift) 画直线img: 在哪个图像上画线pt1, pt2: 开始点, 结束点. 指定线的开始与结束位置color: 颜色thickness: 线宽lineType: 线型.线型为-1, 4, 8, 16, 默认为8shift: 坐标缩放比例....

2022-08-13 18:13:33 1754

原创 Python机器视觉--OpenCV入门(重要)--OpenCV数据结构--Mat

Mat是OpenCV在C++语言中用来表示图像数据的一种数据结构.在python中转化为numpy的ndarray.Mat由header和data组成, header中记录了图片的维数, 大小, 数据类型等数据.

2022-08-07 10:17:55 2855

原创 Python机器视觉--OpenCV入门--OpenCV中的色彩空间简介与色彩空间转换

OpenCV色彩空间 与色彩空间转换

2022-08-07 10:11:46 851 3

原创 Python机器视觉--OpenCV入门--鼠标事件与TrackBar控件(含小项目:OpenCV调色板)

OpenCV鼠标事件与TrackBar控件

2022-08-07 10:01:02 892 2

原创 Python机器视觉--OpenCV入门--视频的加载,录制

OpenCV的视频加载,显示与录制

2022-08-07 09:46:50 602

原创 Python机器视觉--OpenCV入门--OpencCV的安装与图片加载显示

OpenCV的安装与图片加载

2022-08-07 09:40:14 672

原创 Python机器视觉--OpenCV入门--机器视觉与OpencCV用途简介

Python机器视觉OpenCV用途简介

2022-08-07 09:28:00 943

原创 Python机器学习--算法实现--常用算法在Sklearn中的回归算法关键参数详解

常用算法在Sklearn中的关键参数详解回归算法线性回归算法from sklearn.linear_model import LinearRegressionLinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1) '''参数含义:1.fit_intercept:布尔值,指定是否需要计算线性回归中的截距,即b值。如果为False,那么不计算b值。2.normalize:布尔值。如果为False,那

2021-09-05 15:07:42 1125 1

原创 Python机器学习--算法实现--常用算法在Sklearn中的聚类算法和分类算法关键参数详解

常用算法在Sklearn中的关键参数详解聚类算法K-Means算法基于Sklearn中的参数from sklearn.cluster import KMeansKMeans(n_clusters=8 , init='k-means++' ,n_init=10 ,max_iter=300 , tol=0.0001 , precompute_distances='auto' , verbose=0 ,ran

2021-09-05 14:57:35 1179

原创 Python机器学习--算法导包--Sklearn(scikit-learn)导包与特征处理大合集

Sklearn各类型算法导包与特征处理大合集分类算法导包合集# 算法# 分类算法1.KNNfrom sklearn.neighbors import KNeighborsClassifier2.朴素贝叶斯from sklearn.naive_bayes import BernoulliNB # 特征值是二分类from sklearn.naive_bayes import GaussianNBfrom sklearn.naive_bayes import MultinomialNB3

2021-09-05 13:58:26 818

原创 Python机器学习--算法评估指标--各类型算法评估指标

聚类算法常用评估指标:轮廓系数 SSE(误差平方和)- 分类算法常用评估指标:准确率,查准率,查全率,F1-score,PR曲线,ROC曲线和AUC指标,ROC曲线下的面积就是AUC指标.- 回归算法的评估指标:R方范围[-inf,1] (真实值与预测 ),MSE,MAE,RMSE...

2021-09-01 19:33:39 3044 7

原创 Python机器学习--集成学习算法--XGBoost算法

XGBoost算法XGBoost算法类型:XGBoost算法:属于集成学习算法 ,与随机森林类似,也由多颗决策树组成XGBoost算法既可以解决分类问题,也可以解决回归问题。后一棵树是在前一个树的基础上生成的后一棵树只需要拟合前K棵树和真实结果之间的误差误差可以用负梯度表示;因此可叫 梯度提升树XGboost是计算一阶导数和二阶导数,因此又称为 极端梯度提升树集成学习算法集成学习算法是通过训练多个学习器,然后把这些学习器组合起来,以达到更好的预测性能的目的。集成学习算法的分类:Bagg

2021-08-31 20:18:12 812

原创 Python机器学习--集成学习算法--随机森林算法

随机森林算法随机森林算法类型:随机森林算法:属于集成学习算法 ,通俗点讲,就是将多颗决策树集合起来,就变成了随机森林。集成学习算法集成学习算法是通过训练多个学习器,然后把这些学习器组合起来,以达到更好的预测性能的目的。集成学习算法的分类:Bagging:弱学习器的生成没有先后顺序,可以进行并行训练,如果是分类任务,则预测结果为多个弱学习器的预测结果取众数,如果是回归任务,则预测结果会取多个学习器的平均值。Boosting:弱学习器的生成有先后顺序,后一个弱学习器是之前学习器的基础上训练的,预测

2021-08-31 19:52:11 279 1

原创 Python机器学习--算法--决策树算法

决策树算法决策树算法类型:决策树是一系列算法,而不是一个算法。决策树包含了 ID3分类算法,C4.5分类算法,Cart分类树算法,Cart回归树算法。决策树既可以做分类算法,也可以做回归算法。因此决策树既可以解决分类问题,也可以解决回归问题。决策树的构成决策树的基本组成部分包括:根节点,分节点,和叶子节点。一般来讲,在决策树中,根节点和分节点使用方块表示,而叶子节点使用椭圆表示。决策树的关键点在于如何取建立出一个树,如何建立出一个在可以达成目标的前提下深度最浅的树。决策树中不同算法的介

2021-08-30 21:20:09 2225 2

原创 Python机器学习--回归算法--逻辑回归算法

逻辑回归算法逻辑回归算法类型:逻辑回归属于有监督学习的分类算法(只能做二分类)逻辑回归算法原理:将线性回归的结果输入sigmoid函数中,得出预测为类1的概率(如果概率为0.2 有20%的可能属于类1,属于类0的概率是80%; 结果是类0如果概率为0.8 有80%的可能属于类1,属于类0的概率是20%; 结果是类1)线性回归算法方程sigmoid函数公式和图像:逻辑回归的结果是基于线性回归计算出来的,线性回归的质量好坏会直接影响逻辑回归的结果,影响线性回归的就是回归系数。对于线

2021-08-28 20:58:11 616 3

原创 Python机器学习--回归算法--线性回归算法

线性回归算法线性回归算法类型:线性回归算法属于有监督学习的回归算法,可以处理标签为连续数据类型的数据。线性回归算法原理:通过寻找特征和标签之间的关系,生成一个线性方程,通过线性方程预测未知标签。算法的结果是一个线性方程。如果特征有一个,对应的结果就是一个一元线性方程。如果特征存在多个,则结果为N元线性方程。线性回归算法的特点1.结果具有可解释性(根据线性方程可以明确的得出结果是如何计算出来的)2.是逻辑回归算法的基础3.特征与标签之间具有线性关系多元线性方程因为一元线性方程为:y=

2021-08-28 18:28:34 1548

原创 Python机器学习--分类算法--朴素贝叶斯算法

朴素贝叶斯算法朴素贝叶斯算法类型朴素贝叶斯算法属于有监督学习中的分类算法,基于贝叶斯理论和特征相互独立的假设,因为假设特征相互独立让问题变得简单,因此称为朴素.朴素贝叶斯算法分为:伯努利朴素贝叶斯,高斯朴素贝叶斯,多项式朴素贝叶斯,因此此篇,篇幅较长,需要看某一个算法,可以使用ctrl+F进行搜索即可.朴素贝叶斯算法第一站:概率公式条件概率公式为(即在事件B发生的情况下,事件A发生的概率):当A,B相互独立时 P(AB) = P(A)∗P(B)全概率公式:贝叶斯公式:朴素贝叶斯算法

2021-08-22 22:02:47 1804

原创 Python机器学习--聚类算法--Kmeans聚类算法

Kmeans聚类算法Kmeans算法类型:Kmeans算法属于无监督学习的聚类算法.无监督学习是指没有明确的标签,这类问题没有标准的答案.Kmeans算法原理什么是聚类?所谓聚类问题,就是给定一个数据集D,其中每个样本具有n个属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相似度尽可能的高,而不同子集的元素相似度尽可能低。其中每个子集叫做一个簇。聚类目的:类内相似、类间相异Kmeas原理1、从数据集D中随机取k个元素,作为k个簇的各自的中心(质心)。2、分别计算剩下的元素到

2021-08-22 19:36:43 1393

原创 Python机器学习--分类算法--KNN算法

KNN算法KNN算法类型:knn(k-Nearest Neighbors),K最近邻算法.属于有监督学习的分类和回归算法.KNN算法原理1.计算测试样本与训练集中所有样本之间的相似度(使用距离表征相似度.)2.按照距离递增排序3.选择与测试样本中距离最近的k个训练样本.4.根据选择出的K个样本的标签,进行投票或平均 (投票为分类问题,求平均为回归问题).KNN算法的特点1.计算复杂度高(最初的knn是暴力搜索的).2.所设置的K值不同,预测结果也不同3.属于惰性学习算法(边测试,边

2021-08-22 19:09:00 556 2

原创 Python数据分析--Pandas入门--DataFrame的增删改查操作

DataFrame的增删改操作DataFrame的增加操作为DataFrame增加一列相同的内容df[‘新列名’]=‘数据’代码实现import pandas as pdindex1 = ["stu1", "stu2", "stu3", "stu4"]columns1 = ["姓名", "年龄", "性别", "职业"]data1 = [['李A', 18, '男', '数据分析'], ['王B', 19, '男', '机器学习'], ['赵C', 20,

2021-08-21 20:53:54 1118 3

原创 Python数据分析--Pandas入门--Pandas读取和写入文件

Pandas读取文件中的数据pandas读取出的数据为DataFrame数据类型.Pandas读取excel文件 pandas.read_excel()sheet_name可指定读取的excel工作表的名称或排序.data = pd.read_excel("../data/meal_order_detail.xlsx", # sheet_name=0, # 默认是0,读第0个工作表 # sheet_name=1,

2021-08-21 20:19:26 728

原创 Python数据分析--Pandas入门--DataFrame简单操作

DataFrame简单操作 修改行列索引1. 修改整个行/列索引2.修改个别行/列的索引3.将某一列所谓行索引将行索引变为正常的一列

2021-08-21 20:08:19 127

原创 Python数据分析--Pandas入门--Series与DataFrame属性

Pandas中Series与DataFrame属性1.DataFrame的属性代码实现import pandas as pd#创建DataFramedata_dict = {"姓名": ["A", "B", "C", "D"], "年龄": [18, 19, 20, 19], "性别": ['男', '男', '女', '男'], "职业": ['数据分析', '机器学习', "深度学习", "搬砖"]

2021-08-21 19:53:46 161

原创 Python数据分析--Pandas入门--Series与DataFrame创建

Pandas中Series,DataFrame1.简介Series与DataFramePandas共有两种数据结构,分别是DataFrame 和Series.DataFrame是一种类似于excel表格的数据格式,有行有列.从DataFrame中取出一列 则是一个Series.DataFrame中每一列都是一个不同的数据类型.2.Pandas的导入pandas一般与numpy一起使用.import pandas as pd3.Pandas中DataFrame的创建创建方式一:使用Pan

2021-08-21 19:44:30 517

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除