自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 微信二维码源码解析

对微信开源到opencv的二维码检测算法源码就行深度解析

2023-07-14 17:18:09 147

原创 数据结构--第二章-算法

一.什么是算法算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。输入:算法具有零个或者多个输入。尽管对于绝大多数算法来说,输入参数都是有必要的。但是有些时候,想打印“ I love fish.",就不需要啥参数了。输出:算法至少有一个或者多个输出。算法是一定要输出的,输出的形式可以实打印形式输出,也可以是返回一个值或多个值等。有穷性:指算法在执行有限的步骤之后,自

2020-10-21 15:22:24 502 1

原创 数据结构--第一章-数据结构和算法绪论

一. 什么是数据结构数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。即:程序结构 = 数据结构+算法数据结构就是数据元素相互之间存在的一种或多种特定关系的集合。二. 逻辑结构和物理结构传统上,数据结构分为逻辑结构和物理结构。逻辑结构:是指数据对象中数据元素之间的相互关系,也是今后最需要关注和讨论的问题。物理结构:是指数据的逻辑结构在计算机中的存储方式。A.下面介绍四大逻辑结构:1.集合结构集合结构:集合结构中的数据元素

2020-10-21 14:52:29 245

原创 利用pytorch训练好的模型测试单张图片

pytorch网络输入图片的格式是[B,C,H,W],分别为批大小(batchsize),图片通道数(channel),图片高(height),图片宽(width)。图片读取方式主要有两种:(1)通过PIL进行读取;(2)通过opencv进行读取。分别进行介绍。(1)通过PIL进行读取:通过PIL的Image读取的图片是一个图片对象,可以进行裁剪翻转等torchvision.transforms变换。torchvision.transforms可以对图像对象进行一系列裁剪、翻转等转换操.

2020-10-11 16:38:04 18182 15

原创 Ubuntu16.04添加开机自启动.py脚本(亲测有效)

注意事项:如果脚本没有执行,首先应该考虑执行权限问题,查看脚本和相应的文件是否有执行权限,如果没有需要赋予执行权限。方法1:1.编写一个shell脚本文件,例如python_auto.sh,文件内容:python /home/test/start.py2.编写start.py文件,里面执行你需要服务器开启执行的操作3.在 /etc/profile 这个文件中,添加shell脚本文件路径,例如:/home/test/start.sh start在服务器开机时会自动执行 /..

2020-08-04 14:07:36 972

原创 yolov5训练日志

yolov5训练一、准备工作1.配置环境https://github.com/ultralytics/yolov5首先进入u大佬的GitHub主页,把项目下载下来。然后进入目录打开终端,pip install -U -r requirements.txt即可安装好yolov5所需环境,如果运行detect.py出现问题,依据报错自行修改。(百度有很多装torch的教程和视频,多查查就能装好)2.数据集准备这里和yolov3的数据集准备一样,推荐参考这个链接,简单,一次成功。https://

2020-07-10 13:35:12 4100 1

原创 jupyter notebook不能启动服务 不能连接服务器

windows下,jupyter notebook不能启动服务 不能连接服务器遇到这个问题,重新安装也不行!!!网上很多说是tornado版本的问题,降低了版本号还是不行最后,通过网络搜索,找到一个解决方案在命令提示符下输入pip install --upgrade prompt-toolkit==2.0.4然后输入 jupyter notebook 启动成功了!希望有用!!!!!!http://blog.sina.com.cn/s/blog_13fc4976c0102xql

2020-06-11 10:56:09 2992 2

原创 Ubuntu18.04安装ROS

主要参考链接为官网:http://wiki.ros.org/melodic/Installation/Ubuntu不同版本的Ubuntu系统对应着不同版本的ROS,进入网站http://wiki.ros.org/melodic/Installation,见下图。、Melodic主要对应:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch。开始进行安装,打开系统的终端。1.配置Ubuntu软件库配置Ubuntu存储库.

2020-05-29 08:43:58 361

原创 Ubuntu18.04安装cmake(附免费下载cmake)。

1.下载linux版本的cmake,cmake-3.15.3-Linux-x86_64.tar.gz2.解压tar zxvf cmake-3.15.3-Linux-x86_64.tar.gz3. 创建软链接注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/optsudo mv cmake-3.15.3-Linux-x86_64 /opt/c...

2019-12-28 11:13:53 1170

原创 Jupyter Notebook使用matplotlib绘图显示中文

在Jupyter Notebook使用matplotlib绘图显示中文会出现乱码,需要添加两行代码:import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False即可。...

2019-09-30 19:37:34 1490 4

原创 运行keras-yolo时报错:InternalError (see above for traceback): Blas SGEMM launch failed解决方法

本人使用的是Ubuntu18.04,CUDA9.0,tensorflow-gpu1.6.0。去CUDA官网(https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&...

2019-09-30 18:48:06 1056

原创 Ubuntu18.04两个Cuda(cuda10.0+cuda9.0)、两个Cudnn(cudnn7.3.1+cudnn7.0.5),并进行自由切换

之前安装了CUDA10.0,Cudnn7.3.1,因为要跑keras-yolo3,没办法运行,需要使用CUDA9.0+cudnn7.0.5(要求是7.0.4,但是官网没办法进行下载,因此尝试了7.0.5,结果可以正常使用),因此安装了两个版本的CUDA和cudnn,并进行来回切换,排坑排了一下午,特此写出来,希望对大家有用。1.下载CUDA9.0,链接(https://developer.nv...

2019-08-16 13:27:26 1387 2

原创 Ubuntu使用小结(持续更新)

一、卸载安装的软件1.dpkg --list显示安装的软件列表2.sudo apt-get --purge remove 软件名(--purge是可选项,写上这个属性是将软件及其配置文件一并删除,如不需要删除配置文件,可执行sudo apt-get remove 软件名)3.输入密码...

2019-08-01 10:12:24 218

原创 基于GAN的无监督异常检测

参考https://github.com/tkwoo/anogan-keras程序运行环境为:1.环境搭建(1)anaconda中新建环境conda create -n gan python=3.6激活环境conda activate gan(2)安装需要的软件库:pip install opencv-python==3.4.0.14pip instal...

2019-07-04 17:27:21 4568 2

原创 YOLOV3 报错

配置好YOLOV3后,测试 ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg,报错CUDA Error: out of memory darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.解决方法:打开yolov3.cfg,修改如下:# ...

2019-06-29 08:58:16 529

原创 Ubuntu18.04显卡驱动崩溃,进行重装,亲测有效。

莫名其妙电脑重新开机后,屏幕的分辨率明显变差。应该是显卡驱动出了问题,验证一下:sudo nvidia-smi出现链接不成功,说明驱动出了问题。去英伟达官网下载相应的驱动,我的是NVIDIA-Linux-x86_64-430.09.run。1.将Ubuntu从桌面模式切换到控制台模式:Ctrl+Alt+F1,进去后输入用户名和密码即可。2.删除之前的显卡驱动残留sudo ...

2019-06-26 09:20:50 9977 2

原创 windows环境下使用opencv训练级联分类器traincascade

基于opencv3.4.1(https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download)+contrib(https://github.com/opencv/opencv_contrib/releases),下载相应版本。cmake下载msi版本。(https://c...

2019-05-23 13:00:47 737

原创 解决“object_detection/protos/*.proto: No such file or directory”问题

在cmd中的正确目录下执行protoc object_detection\protos\*.proto --python_out=.会出现object_detection/protos/*.proto: No such file or directory解决方法:for /f %i in ('dir /b object_detection\protos\*.proto...

2019-05-14 13:52:25 788

原创 opencv031-图像矩

矩的概念介绍l图像中心Center(x0, y0)API介绍与使用 – cv::moments 计算生成数据API介绍与使用-计算矩cv::momentsmoments(InputArray  array,//输入数据bool   binaryImage=false // 是否为二值图像)contourArea(InputArray  contour...

2018-12-17 16:17:34 124

原创 opencv030-轮廓周围绘制矩形框和圆形框

轮廓周围绘制矩形 -APIlapproxPolyDP(InputArray  curve, OutputArray approxCurve,  double  epsilon,  bool  closed)基于RDP算法实现,目的是减少多边形轮廓点数lcv::boundingRect(InputArray points)得到轮廓周围最小矩形左上交点坐标和右下角点坐标,绘制一个矩...

2018-12-17 13:47:33 308

原创 opencv028-轮廓发现

轮廓发现(find contour)l轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果lAPI介绍-findContours发现轮廓-drawContours绘制轮廓轮廓发现(find contour)在二值图像上发现轮廓使用API cv::findContours(InputOutputArray  binImg...

2018-12-15 13:23:00 270

原创 opencv029-凸包

概念介绍l什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。正式定义:包含点集合S中所有点的最小凸多边形称为凸包l检测算法- Graham扫描法概念介绍-Graham扫描算法l首先选择Y方向最低的点作为起始点p0l从p0开始极坐标扫描,依次添加p1….pn(排序顺序是根据极坐标的角度大小,逆时针方向)...

2018-12-15 13:03:40 279

原创 opencv025-直方图比较

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

2018-12-13 09:52:12 112

原创 opencv024-直方图计算

直方图计算直方图概念假设有图像数据8x8,像素值范围0~14共15个灰度等级,、统计得到各个等级出现次数及直方图如右侧所示,每个紫色的长条叫BINl上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的。l直方图最常见的几个属性: - dims 表...

2018-12-11 16:28:04 462

原创 opencv023-直方图均衡化

什么是直方图(Histogram)假设有图像数据8x8,像素值范围0~14共15个灰度等级,统计得到各个等级出现次数及直方图如右侧所示。l图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。图像直方图直方图均衡化是一种提高图像对比度的方法,拉伸图像灰...

2018-12-11 14:01:25 116

原创 opencv022-像素重映射

什么是像素重映射l简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。g(x,y)是重映射之后的图像,h(x,y)是功能函数,f是源图像什么是像素重映射假设有映射函数API介绍cv::remapRemap(InputArray src,// 输入图像OutputArray dst,// 输出图像InputAr...

2018-12-11 10:35:54 254

原创 opencv021-霍夫圆变换

霍夫圆检测原理相关API cv::HoughCirclesl因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。l基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:  1. 检测边缘,发现可能的圆心  2. 基于第一步的基础上从候选圆心开始计算最佳半径大小HoughCircles参数说明HoughCircles(Input...

2018-12-10 19:28:19 171

原创 opencv019-Canny边缘检测

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

2018-12-06 20:29:35 146

原创 opencv018-Laplance算子

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

2018-12-06 18:54:51 230

原创 opencv017-Sobel算子

l卷积应用-图像边缘提取l相关APIl代码演示卷积应用-图像边缘提取\卷积应用-图像边缘提取l边缘是什么 – 是像素值发生跃迁的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。l如何捕捉/提取边缘 – 对图像求它的一阶导  delta =  f(x) – f(x-1), delta越大,说明像素在X方向变化越大,边缘信号越强,...

2018-12-06 18:35:34 181

原创 opencv016-处理边缘

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

2018-12-06 14:58:56 177

原创 opencv-015 自定义线性滤波

自定义线性滤波l卷积概念l常见算子l自定义卷积模糊l代码演示卷积概念l卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。lKernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)卷积如何工作l把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达...

2018-12-06 12:08:33 171

原创 opencv014-图像阈值

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

2018-12-04 21:42:41 116

原创 006 numpy矩阵使用+matplotlib(绘图)

#numpy使用类比数据库,增删改查(CURD)import numpy as npdata1=np.array([1,2,3,4,5])print(data1)data2=np.array([[1,2], [3,4]])print(data2)#维度输出print(data1.shape,data2.shape)#空矩阵 单位矩阵print(n...

2018-11-13 15:18:55 647

原创 005 矩阵初始化、运算、特殊矩阵初始化

#矩阵定义 M行*N列import tensorflow as tfdata1=tf.constant([[6,6]])data2=tf.constant([[2], [2]])data3=tf.constant([[3,3]])data4=tf.constant([[1,2], [3,4], ...

2018-11-13 14:51:56 340

原创 004 tensorflow常量变量定义及运算原理+常量变量四则运算

#opencv tensorflow#类比 语法 api 原理#基础数据类型 运算符 流程 字典 数组import tensorflow as tfdata1=tf.constant(2.5)data2=tf.Variable(10,name='var')sess=tf.Session()print(data1)print(data2)'''print(sess.run(da...

2018-11-06 16:34:55 176

原创 003. 图片读取+图片保存+像素操作

 1.图片读取与展示# 1.引入opencv 2.调用API 3.暂停stop import cv2img = cv2.imread('2.png',1)#图片读取,1.图片名称2.读取图片的类型 (0,gray 1.color)cv2.imshow('image',img)#窗体名称 ,图片名称cv2.waitKey(0)2.图片写入import cv2img=...

2018-11-06 15:28:38 208

原创 002 OpenCV+TensorFlow 测试案例hello world

tensorflow的验证程序#import 2strint 3printimport tensorflow as tfhello=tf.constant('hello tf!')sess=tf.Session()#所有的操作都必须经过session绘画来进行print(sess.run(hello))#note:1.常量创建 2.session上下文的创建 3pr...

2018-10-30 21:52:30 282

原创 001 OpenCV+TensorFlow+python环境搭建

1.anaconda下载https://www.anaconda.com/download/ 并安装2.创建tensorflow开发环境,打开anaconda prompt输入conda create -n tensorflow python=3.63.打开anaconda navigator,添加tensorflow、opencv、notebook源代码。然后点击App...

2018-10-30 21:45:56 377 2

原创 opencv013-图像上采样和下采样(+高斯不同)

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

2018-10-18 19:27:10 1276

cmake-3.15.3-Linux-x86_64(2).tar.gz

供大家免费下载,linux版本的cmake。注意因为 直接上传会显示已经存在上传不了,因此对文件进行了重命名,大家下载好了以后把文件名后面的(2)去掉即可,此处的()是中文模型下的,解压后里面有个没有用的文件,删除即可。

2019-12-28

空空如也

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

TA关注的人

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