自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 机器学习——时间序列分析:滑动窗口

机器学习——滑动窗口  滑动窗口,为了提升数据的准确性,将某个点的取值扩大到包含这个点的一段区间,用区间来进行判断,这个区间就是窗口。滑动窗口就是能够根据指定的单位长度来框住时间序列,从而计算框内的统计指标。相当于一个长度指定的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。pandas里常用的滑动窗口函数有:用法举例:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltv = np.random.

2021-08-18 11:04:05 14653

原创 CSDN博客撰写小技巧

CSDN博客撰写小技巧CSDN博客写作小技巧【1】:CSDN如何设置字体大小、颜色和字体类型!CSDN Markdown写博客插入空格

2021-08-17 11:07:01 114

原创 【sklearn】sklearn定义、保存和读取模型

sklearn保存和读取模型保存为pickle文件import pickle # 保存模型with open('model.pickle', 'wb') as f: pickle.dump(model, f) # 读取模型with open('model.pickle', 'rb') as f: model = pickle.load(f)model.predict(X_test)sklearn自带方法joblibfrom sklearn.externals impo

2021-08-17 11:04:29 1003

转载 【sklearn】sklearn中的交叉验证

sklearn中的交叉验证 1、交叉验证的思想 把某种意义下将原始数据(dataset)进行分组,一部分作为训练集(train set),另一部分作为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来作为评价分类器的性能指标。 2、为什么使用交叉验证法-交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程序熵减少过拟合。-交叉验证还可以从有限的数据中获取尽可能多的有效信息

2021-08-17 09:52:25 9119 3

原创 【sklearn】sklearn的train_test_split()参数含义解释

sklearn的train_test_split()参数含义解释在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从 sklearn.model_selection 中调用train_test_split 函数from sklearn.model_selection import train_test_split简单用法如下:X_train,X_test, y_train, y_test =sklearn.model_selection.train_test_split(tra

2021-08-16 19:08:34 2398

转载 os.path.join()函数:python路径拼接

os.path.join()函数:连接两个或更多的路径名组件1.如果各组件名首字母不包含’/’,则函数会自动加上2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾Demo1import osPath1 = 'home'Path2 = 'develop'Path3 = 'code'Path10 = Path1 + Path2 + Path3Path20 = os.path.join(Path1,P

2021-06-08 10:51:53 135

原创 在Jupyter Notebook中使用Anaconda创建的kernel虚拟环境

创建虚拟环境conda create -n 环境名 python=版本例如:创建一个叫tensorflow的虚拟环境,python版本为3.8:conda create -n tensorflow python=3.8激活虚拟环境conda activate 环境名在虚拟环境中安装ipykernel (切记这一步是在对应的虚拟环境中进行)pip install ipykernel使用ipykernel生成虚拟环境的kernel(这一步也是在虚拟环境中进行)python -m ipy

2021-06-04 23:02:07 331 1

原创 【解决办法】module ‘tensorflow‘ has no attribute ‘placeholder‘

tensorflow提示错误:module 'tensorflow' has no attribute 'placeholder'解决办法:将:import tensorflow as tf替换为:import tensorflow.compat.v1 as tftf.disable_v2_behavior()亲测解决。

2021-06-04 23:01:50 931

原创 【双目视觉】摄像头测试

【双目视觉】摄像头测试将从淘宝购买的摄像头,插入电脑USB接口,进行连接,采用如下编写的程序进行摄像头测试。实现代码#include<opencv2/opencv.hpp>using namespace cv;void main() { VideoCapture cap; cap.open(0); //打开摄像头 if (!cap.isOpened()) r...

2021-06-04 23:01:30 224

转载 【OpenCV】-32、点多边形测试

【OpenCV】点多边形测试概念介绍 - 点多边形测试 - 测试一个点是否在给定的多边形内部,边缘或者外部相关APIcv::pointPolygonTestpointPolygonTest(InputArray contour,// 输入的轮廓Point2f pt, // 测试点bool measureDist // 是否返回距离值,如果是false,1表示在内面,0表示在边...

2021-06-04 23:00:27 72

转载 知识整理(范数、激活函数)

关于范数的知识整理链接

2020-04-30 17:06:35 172

原创 【Python】——Numpy的学习

Numpy是一个用python实现的科学计算的扩展程序库,包括:1、强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密...

2020-04-30 17:03:44 542

原创 【OpenCV】-31、图像矩(Image Moments)

【OpenCV】图像矩(Image Moments)矩的概念介绍几何矩几何矩-中心距-中心归一化距图像中心Center(x0, y0)相关API – cv::moments 计算生成数据moments(InputArray array,//输入数据bool binaryImage=false // 是否为二值图像)contourArea...

2020-04-30 17:03:27 411

原创 【OpenCV】-30、轮廓周围绘制矩形框和圆形框

【OpenCV】轮廓周围绘制矩形框和圆形框轮廓周围绘制矩形 -APIapproxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed)基于RDP算法实现,目的是减少多边形轮廓点数cv::boundingRect(InputArray points)得到轮廓周围最小矩形左上交点...

2020-04-30 17:03:19 196

原创 【OpenCV】-29、凸包(Convex Hull)

【OpenCV】凸包-Convex Hull概念介绍什么是凸包(Convex Hull),在一个多变形边缘或者内部任 意两个点的连线都包含在多边形边界或者内部。检测算法Graham扫描法概念介绍-Graham扫描算法首先选择Y方向最低的点作为起始点p0从p0开始极坐标扫描,依次添加p1….pn(排序顺序是根据极坐标的角度大小,逆时针方向)对每个点pi来说,如果添加pi点...

2020-04-30 17:03:12 200

原创 【OpenCV】-28、轮廓发现(find contour in your image)

【OpenCV】轮廓发现(find contour in your image)轮廓发现(find contour)轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓的发现结果API介绍findContours发现轮廓drawContours绘制轮廓轮廓发现(find contour)在二值图像上发现轮廓使用APIcv::findC...

2020-04-30 17:03:03 148

原创 【OpenCV】-27、模板匹配(Template Match)

【OpenCV】模板匹配(Template Match)模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像-源图像S工作方法,在待检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。OpenCV中提供了六种常见的匹配算法如下:计算平方不同计算...

2020-04-30 17:02:39 302

原创 【OpenCV】-26、直方图反向投影(Back Projection)

【OpenCV】直方图反向投影(Back Projection)反向投影反向投影是反映直方图模型在目标图像中的分布情况简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型反向投影 – 步骤1.建立直方图模型2.计算待测图像直方图并映射到模型中3.从模型反向计算生成图像实现步骤与相关API加载图片imread将图像从RGB...

2020-04-30 17:02:21 180

原创 【OpenCV】-25、直方图比较

【OpenCV】直方图比较直方图比较方法-概述对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进而比较图像本身的相似程度。Opencv提供的比较方法有四种:Correlation 相关性比较Chi-Square 卡方比较Intersection 十字交叉性Bhattacharyya distance...

2020-04-30 17:02:13 156

原创 【OpenCV】-24、直方图计算

【OpenCV】直方图计算直方图概念上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的。直方图最常见的几个属性:dims 表示维度,对灰度图像来说只有一个通道值dims=1bins 表示在维度中子区域大小划分,bins=256,划分为256个级别range ...

2020-04-30 17:02:04 122

原创 【OpenCV】-23、直方图均衡化

【OpenCV】直方图均衡化直方图(Histogram)图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。直方图均衡化是一种提高图像对比度的方法,拉伸图像灰度值范围。如何实现,通过上一课中的remap我们知道可以将图像灰度分布从一个分布映射到另外一个分布,然后...

2020-04-30 17:01:54 144

原创 【OpenCV】-22、像素重映射(cv::remap)

【OpenCV】像素重映射(cv::remap)什么是像素重映射简单点说,就是把输入图像中各个像素,按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。相关APIcv::remapRemap(InputArray src,// 输入图像OutputArray dst,// 输出图像InputArray map1,// x 映射表 CV_32FC1/CV_32FC2...

2020-04-30 17:01:46 317

原创 【OpenCV】-21、霍夫圆检测

【OpenCV】霍夫圆检测霍夫圆检测原理从平面坐标到极坐标转换三个参数假设平面坐标的任意一个圆上的点,转换到极坐标中:处有最大值,霍夫变换正是利用这个原理实现圆的检测。相关API cv::HoughCircles因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:1. 检测边缘,发现可能的...

2020-04-30 17:01:37 229

原创 【OpenCV】-20、霍夫变换-直线

【OpenCV】霍夫变换-直线霍夫直线变换介绍Hough Line Transform用来做直线检测前提条件 – 边缘检测已经完成平面空间到极坐标空间转换对于任意一条直线上的所有点来说变换到极坐标中,从[0~360]空间,可以得到r的大小属于同一条直线上点在极坐标空(r, theta)必然在一个点上有最强的信号出现,根据此反算到平面坐标中就可以得到直线上各点的像素坐标,从而得到直...

2020-04-30 17:01:15 126

原创 【OpenCV】-19、Canny边缘检测

【OpenCV】Canny边缘检测Canny算法介绍:Canny是边缘检测算法,在1986年提出的。是一个很好的边缘检测器很常用也很实用的图像处理方法五步 cv::Canny高斯模糊 - GaussianBlur灰度转换 - cvtColor计算梯度 – Sobel/Scharr非最大信号抑制高低阈值输出二值图像Canny算法介绍 - 非最大信号抑制Canny算法介绍-高...

2020-04-30 17:01:06 187

原创 【OpenCV】-18、Laplance算子

【OpenCV】Laplance算子解释:在二阶导数的时候,最大变化处的值为零即边缘是零值。通过二阶导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。Laplance算子->拉普拉斯算子(Laplance operator)Opencv已经提供了相关API - cv::Laplance处理流程高斯模糊 – 去噪声GaussianBlur()转换为灰度图像cvtCol...

2020-04-30 17:00:52 107

原创 【OpenCV】-17、Sobel算子

【OpenCV】Sobel算子卷积应用-图像边缘提取边缘是什么 – 是像素值发生阶跃变化的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。如何捕捉/提取边缘 – 对图像求它的一阶导数delta = f(x) – f(x-1), delta越大,说明像素在X方向变化越大,边缘信号越强Sobel算子是离散微分算子(discrete differenti...

2020-04-30 17:00:43 210 1

原创 【OpenCV】-16、图像的边缘处理

【OpenCV】处理边缘卷积边缘问题图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。处理边缘在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。openC...

2020-04-30 17:00:20 366

原创 【OpenCV】-15、自定义线性滤波

【OpenCV】自定义线性滤波卷积概念卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下:Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+...

2020-04-30 17:00:10 97

原创 【OpenCV】-14、基本阈值操作

【OpenCV】基本阈值操作图像阈值(threshold)阈值 是什么?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。(Binary segmentation)1 阈值类型一阈值二值化(threshold binary)表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值2 阈值类型一阈值反二值化(threshold binary Inver...

2020-04-30 17:00:00 190

原创 【OpenCV】-13、图像上采样和降采样

【OpenCV】图像上采样和降采样图像金字塔概念我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔一个图像金字塔由一系列的图像组成,最底一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。高斯金子塔 – 用来对图像进行降采样拉普拉斯金字塔 –...

2020-04-30 16:59:51 260

原创 【OpenCV】-12、形态学操作应用-提取水平与垂直线

【OpenCV】形态学操作应用-提取水平与垂直线原理方法图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值腐蚀,输出的像素值是...

2020-04-30 16:59:42 167

原创 【OpenCV】-11、形态学操作

【OpenCV】形态学操作开操作- open闭操作- close形态学梯度- Morphological Gradient顶帽 – top hat黑帽 – black hat开操作- open先腐蚀后膨胀可以去掉小的对象,假设对象是前景色,背景是黑色闭操作-close先膨胀后腐蚀(bin2)可以填充小的洞(fill hole),假设对象是前景色,背景是黑色形态学梯...

2020-04-30 16:59:33 136

原创 【OpenCV】-10、膨胀与腐蚀

【OpenCV】膨胀与腐蚀形态学操作(morphology operators)(1)图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学(2)形态学有四个基本操作:腐蚀、膨胀、开运算、闭运算(3)膨胀与腐蚀是图像处理中最常用的形态学操作手段形态学操作-膨胀跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计...

2020-04-30 16:58:56 84

原创 【OpenCV】-09、图像模糊(2)——中值滤波、双边滤波

【OpenCV】图像模糊(2)——中值滤波、双边滤波中值滤波统计排序滤波器中值对椒盐噪声有很好的抑制作用双边滤波(1) 均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重(2)高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同(3) 高斯双边模糊 – 是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变相关API中值模糊m...

2020-04-30 16:58:45 195

原创 【OpenCV】-08、图像模糊(1)——均值模糊、高斯模糊

【OpenCV】图像模糊(1)模糊原理Smooth/Blur 是图像处理中最简单和常用的操作之一使用该操作的原因之一就为了给图像预处理时候减低噪声使用Smooth/Blur操作其背后是数学的卷积计算通常这些卷积算子计算都是线性操作,所以又叫线性滤波假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像个像素点值之和取平均值赋给中心...

2020-04-30 16:58:37 262

原创 【OpenCV】-07、绘制形状与文字

【OpenCV】绘制形状与文字一、使用cv::Point与cv::Scalar1、Point表示2D平面上一个点x,yPoint p; p.x = 10; p.y = 8;或者p = Pont(10,8);2、Scalar表示四个元素的向量Scalar(a, b, c);// a = blue, b = green, c = red表示RGB三个通道二、绘制线、矩形、园、...

2020-04-30 16:58:17 101

原创 【OpenCV】-06、图像亮度与对比度调整

【OpenCV】调整图像亮度与对比度理论图像变换可以看作如下:像素变换 – 点操作邻域操作 – 区域调整图像亮度和对比度属于像素变换-点操作相关的APIMat new_image = Mat::zeros( image.size(), image.type() ); 创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0saturate_cast(value)确保值大小...

2020-04-30 16:58:06 92

原创 【OpenCV】-05、图像混合操作

【OpenCV】图像混合理论-线性混合操作alpha取值0-1相关API (addWeighted)参数1:输入图像Mat – src1参数2:输入图像src1的alpha值参数3:输入图像Mat – src2参数4:输入图像src2的alpha值参数5:gamma值参数6:输出混合图像注意点:两张图像的大小和类型必须一致才可以代码实现#include<openc...

2020-04-30 16:57:55 89

原创 【OpenCV】-04、Mat对象

Mat对象Mat对象与IplImage对象Mat对象OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分IplImage是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构,需要开发者自己分配与管理内存,对大的程序使用它容易导致内存泄漏问题Mat对象构造函数与常用方法常用方法:vo...

2020-04-30 16:57:40 118

空空如也

空空如也

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

TA关注的人

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