自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (2)
  • 收藏
  • 关注

原创 MinGW(C++)的安装和使用

MinGW(Minimalist GNU for Windows) 是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有

2021-01-19 18:22:18 1914

原创 Browsermob-Proxy(Selenium)爬取浏览器获取Har信息(含实例)

使用Selenium 爬取网页内容时,异步加载、js加密、动态Cookie等问题都非常简单的能够获取或提交表单。很多网站数据都是通过json 结构来交互,直接分析json 结构数据不但全而且很好解析,这比解析 html 网页简单很多。而且很多时候一些接口返回的关键信息不在 html 网页上显示,直接通过 selenium 获得的这些网页就没有这些信息。selenium + webdriver虽然能够定位DOM元素、操作网页、获取网页等,但是 Selenium 只能处理“结果”,它无法得知浏览器请求的数据

2021-01-18 12:16:38 5100

原创 matlab从距离变换(bwdist)中提取二值图像的中心线

给定一个二值输入图像,从它的距离变换中提取中心线。输入的原图如下所示: 实现提取中心线的代码如下:clc, clear, close all;% 读取原图image = imread('binary_image.jpg');im = im2bw(image);figure(1), subplot(3,2,1)imshow(im,[]);title('Input Image');imd=bwdist(~im);subplot(3,2,2)imshow(imd,[]);ti

2020-09-12 11:02:05 3435 5

原创 matlab在矩阵中给特定的位置序列赋值sub2ind

sub2ind 将下标转换为线性索引。一、语法linearInd = sub2ind(matrixSize, rowSub, colSub)说明sub2ind 为大小是 matrixSize 的矩阵返回与行和列下标 rowSub 和 colSub 等效的线性索引。matrixSize 输入是一个包含 2 个元素的向量,该向量以 [nRows, nCols] 形式指定矩阵中的行和列数。rowSub 和 colSub 输入是正整数标量或向量,指定矩阵的一个或多个行-列下标对组。二、示例>

2020-09-10 10:58:03 2680

原创 MATLAB数组中出现次数最多的值mode

mode:数组中出现次数最多的值,原址。一、语法M = mode(A)M = mode(A,‘all’)M = mode(A,dim)M = mode(A,vecdim)[M,F] = mode(___)[M,F,C] = mode(___)二、说明M = mode(A) 返回 A 的样本众数,即 A 中出现次数最多的值。(1)、如果有多个值以相同的次数出现,mode 将返回其中最小的值。对复杂的输入,最小值是排序列表的第一个值。(2)、如果 A 为向量,则 mode(A) 返回

2020-09-08 15:54:51 2004

原创 c++队列容器适配器queue的用法

queue 是一种容器适配器,并且只能访问该容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。查看队列的定义请看这篇博客,队列的定义和算法的实现一、c++ queue的成员方法在使用queue之前需要加如下所示对应的头文件。#include <queue>成员方法功能用法front()返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。c.front()c

2020-09-01 15:26:50 289

原创 队列的定义和算法的实现

与栈相反,队列(queue) 是一种先进先出 (first in first out,缩写为FIFO )的线性表。它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾 (rear),允许删除的一端则称为 队头(front)。1、链队列–队列的链式表示和实现用链表表示的队列简称为链队列 ,一个链队列需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。我们给链队列添加一个头结点,并令头指针指向头结点。因此,空的链队列的判决条件为头指针和尾指针均指向头结点。如下

2020-08-29 17:18:27 704

原创 LeetCode 20、有效的括号(栈方法 & 三种语言--c、c++和python)

一、题目描述题目所在的地址给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:    1、左括号必须用相同类型的右括号闭合。    2、左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入: “()”输出: true示例2:输入: “()[]{}”输出: true示例3:输入: “(]”输出: false示例4:输入: “([)]”输出: false示例5:输入: “{

2020-08-28 21:37:53 194

原创 c++中栈stack的使用

STL 中的 stack 是一种容器适配器,而不是一种容器。容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能。stack容器适配器中的数据是以 LIFO(后进先出) 的方式组织的,通常的操作有入栈(压栈),出栈和栈顶元素。想要读取栈中的某个元素,就是将其之间的所有元素出栈才能完成。查看栈的原理请看这篇博客,栈的定义和算法的实现一、c++ stack的成员方法使用stack需要加如下对应的头文件

2020-08-28 15:38:55 999

原创 栈的定义和算法的实现

一、栈的定义栈(stack) 是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶(top) ,相应地,表头端称为栈底(bottom) 。不含元素的空表称为空栈。假设栈 S=(a1,a2,...,an)S=(a_1,a_2,...,a_n)S=(a1​,a2​,...,an​) ,则称a1a_1a1​ 为栈底元素,ana_nan​ 为栈顶元素。栈中元素按a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​ 的次序进栈,退栈的第一个元素应为

2020-08-25 09:46:06 1939

原创 c++中unordered_map的用法的详述(包含unordered_map和map的区别)

一、前言如果要在c++ 中使用这map 和unordered_map 两个函数,需要分别引入下面的两个头文件#include<map>#include<unordered_map>unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unor

2020-08-22 16:14:20 16898

原创 LeetCode 1、两数之和(三种语言--c、c++、python;两种方法--暴力法、哈希表法)

题目描述题目所在的地址给定一个整数数组numsnumsnums 和一个目标值 targettargettarget,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums=[2,7,11,15],target=9nums = [2, 7, 11, 15], target = 9nums=[2,7,11,15],target=9因为 nums[0]+nums[1]=2+7=9nums[0]

2020-08-20 09:55:19 267

原创 详谈哈希表

一、基本概念根据设定的哈希函数H(key)H(key)H(key) 和处理冲突的方法将一组关键字映射到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便称为 哈希表,这一映像过程称为哈希造表 或散列,所得存储位置称哈希地址 或 散列地址。二、哈希函数的构造方式什么是好的哈希函数?若对于关键字集合中的任何一个关键字,经哈希函数映射到地址集合中任何一个地址的概率是相等的,则称此类哈希函数为 均匀的哈希函数 。换句话说,就是使关键字经过哈希函数得到一个“随机的

2020-08-18 21:39:28 1435

原创 python(scipy)实现填充孔洞的方法(非常类似于MATLAB的imfill)

填充二值图像的孔洞是一个非常常见的方法,因为某些原因我不得不用python来写我的程序,当我想要使用类似于MATLAB 中的imfill 方法时, 我最初发现的是opencv 中的cv2.floodFill 的方法,其实现的过程有点麻烦,而且实现的效果不尽人意。在意外中发现scipy库已经实现了填充孔洞的方法,而且实现的过程如同MATLAB那样的简洁。1、使用Matlab 的imfill 进行填充图像imfill是matlab的一个函数,在http://www.mathworks.cn/cn/help/

2020-06-30 17:54:19 6274 1

原创 python(matplotlib)动态的显示图像

Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。在日常使用过程中,我们有时读取视频,并经过一系列的处理后,想要动态的显示每张经过处理后的结果图,在这里我主要介绍怎么使用matplotlib来动态显示图片,并同时介绍怎么动态显示多个视频。1、显示一张图片这个很简单,也并没有什么难度。import osfrom PIL import Imageimport matplotlib.pyplot as pltimg = Image.op

2020-06-29 09:10:51 11338

原创 matplotlib将figure转化为numpy的array矩阵格式

最近碰到一个问题,python读入视频,并处理每一张图片,并将处理的结果用quiver显示为矢量图,然后将矢量图转化为numpy数据。在这整个过程中碰到以下问题:1)怎么使用quiver,这个用起来有很多参数需要设置,没有MATLAB用起来方便,不过这个不是本博文的重点。2)怎么将矢量图的效果转化为numpy数据,这个我在百度上搜索了好多博文,但是都不是我想要的效果,当我科学上网时,发现matplotlib有官方的介绍,这里贴出链接3)成功的转化为numpy后,又发现我的数据又多了轴参数,致使整个

2020-06-08 21:18:36 3680

原创 python中对图像进行维纳(wiener)滤波

在MATLAB中直接有个维纳滤波函数wiener2可以调用,觉得很有用,但是在python并没有直接可以调用维纳滤波的函数,看见网上很多的教程都是自己根据原理自己编写的函数,这样也很有用,不过有个直接调用的函数我觉得很方便,最后我发现SciPy库有wiener滤波函数的调用。我不写维纳滤波的原理,其原理在网上有很多博主写的都很详细、易懂,我在此主要讲一下如何实现SciPy库中wiener的实现。语法:scipy.signal.wiener( im, mysize=None, noise

2020-05-31 10:12:15 11700 9

原创 MATLAB将视频文件转成图片

MATLAB将视频文件转成图片clc, clear, close allfilePath = '4ch_1.avi';savePath = 'D:\keras_code\label\images\';video = VideoReader(filePath);frame_number = floor(video.Duration*video.FrameRate);for i = 1: frame_number image_name = strcat('echo4_', num2str(

2020-05-28 16:10:21 831

原创 python-opencv实现一种基于图像边缘梯度的边缘模板匹配

1、介绍模板匹配是一个当被搜索图像中对象的姿态 (X,Y,θ)(X,Y,\theta)(X,Y,θ) 未知时,使用模板图像去匹配对象的图像处理方法。在这里实现的是利用目标的边缘信息来识别搜索图像中的目标。2、背景模板匹配由于它的速度和可靠性问题,在本质上是一个棘手的问题。当物体是部分可见或者混合其他对象时,解决方法应该对亮度变化具有鲁棒性,更重要的是,算法应该具有计算效率。解决这一问题的方法主要有基于灰度值的匹配(或基于区域匹配)和基于特征的匹配(非基于区域的匹配)。OpenCV中自带的模...

2020-05-27 22:32:59 5392 3

原创 keras之实例化张量input函数

Input() 用于实例化 Keras 张量。输入参数:shape: 一个尺寸元组(整数),不包含批量大小。 例如,shape=(32,) 表明期望的输入是按批次的 32 维向量。batch_shape: 一个尺寸元组(整数),包含批量大小。 例如,batch_shape=(10, 32) 表明期望的输入是 10 个 32 维向量。batch_shape=(None, 32) 表明任意批次大小的 32 维向量。name: 一个可选的层的名称的字符串。 在一个模型中应该是唯一的(不可以重用一个名字

2020-05-16 15:25:15 2042 1

原创 Python3创建类似于序列或映射对象的元素访问方法(__setitem__、__getitem__)

接下来介绍一组很有用的魔法(特殊)方法,能够创建行为类似于序列和映射的对象。1、基本的序列和映射协议序列和映射基本上是元素的集合,要实现它们的基本行为(协议),① 不可变对象需要实现2个方法, ②而可变对象需要实现4个。__len__(self): 这个方法应返回集合包含的项数,对序列来说为元素的个数,对映射来说为键-值对数。如果__len__返回零(且没有实现覆盖这种行为的__nonzero__),对象在布尔上下文中将被视为假(就像空的列表、元组、字符串和字典一样)。__getitem__(se

2020-05-15 23:23:27 351

原创 markdown(csdn)编辑器合并表格中的单元格

Markdown语法本身不包含复杂表格的插入,但是可以使用html语法来实现。写法规则(大致框架为):<table><tr></tr></table>一个tr之间就是一行th是大标题,td是小标题(th和td的颜色不同)横向合并是 colspan(跨列)纵横合并是 rowspan(跨行)示例:<table> <tr> <th>特征图</th> <th c

2020-05-15 17:28:14 574

原创 【深度学习YOLO系列】对YOLO v3的解读

YOLO v3模型结构YOLO v3在2018年推出,基础框架为Darknet-53 YOLO v3总的详细结构图,由于图片太大,不便于直接放在博客里。YOLO v3有三个不同特征尺度的输出,分别为13×13×255,26×26×255,52×52×255。YOLO v3一般使用416∗416416*416416∗416大小的图片作为输入,最后得到的特征图为13∗1313*1313∗13,再大一些的特征图为26∗2626*2626∗26,再大一些的特征图为52∗525

2020-05-15 17:26:34 1344

原创 Python3之argparse模块--解析命令行读取参数

argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式)。比如如下名为test.py的脚本:import sysprint("Input argument is {}" .format(

2020-05-10 19:35:30 1443

原创 tensorflow2的tf.tile()函数

tensorflow中的tile()函数是用来对张量(Tensor)进行扩展的,其特点是对当前张量内的数据进行一定规则的复制。最终的输出张量维度不变。语法:tf.tile( input, multiples, name=None)input - 待拓展的张量multiples - 拓展的倍数如果input是一个3维的张量,那multiples就是一个1×3的一维张量。这三个值分别代表input三维中的倍数。示例import tensorflow as t

2020-05-10 10:04:02 302

原创 Python3用xml.etree.ElementTree来解析XML文件和获取XML中的元素

1、解析XML文件将使用以下的XML文档作为本节的示例数据。<?xml version="1.0"?><data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="

2020-05-08 23:29:33 2171

原创 python3中对sorted函数的简介

sorted() 函数对所有可迭代的对象进行排序操作。sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。语法:sorted( iterable, cmp=None, key=None, reverse=False)输入参数说明:ite

2020-05-08 21:41:23 189

原创 python3中pickle模块的dump()方法和load()方法

python的pickle模块实现了基本的数据序列和反序列化。经常遇到在Python程序运行中得到了一些字符串、列表、字典等数据,想要长久的保存下来,方便以后使用,这个时候Pickle模块就可以将对象转换为一种可以传输或存储的格式。dump()方法序列化对象,将对象obj保存到文件file中去。用法pickle.dump(obj, file, [,protocol])参数说明:obj:要保存的对象file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以’w

2020-05-08 19:09:24 1988

原创 python3之os操作系统接口模块

该模块提供了一些方便使用操作系统相关功能的函数。 如果你是想读写一个文件,请参阅 open(),如果你想操作路径,请参阅 os.path 模块,如果你想在命令行上读取所有文件中的所有行请参阅 fileinput 模块。 有关创建临时文件和目录的方法,请参阅 tempfile 模块,对于高级文件目录处理,请参阅 shutil 模块。1、 os.path该模块主要是针对路径的操作。os.path.exists(path)判断路径是否存在,存在返回True,不存在返回Falseimport osa

2020-05-08 18:03:02 223

原创 【深度学习YOLO系列】对YOLO v2的解读

针对YOLO准确率不高,容易漏检,对长款比不常见物体效果差等问题,结合SSD的特点,2016年提出了YOLO-v2。YOLO v2速度的优化为了精度和速度并重,作者在速度上也作了一些改进措施。大多数检测网络依赖于VGG-16作为特征提取网络,VGG-16是一个强大而准确的分类网络,但是却过于复杂。224*224的图片进行一次前向传播,其卷积层就需要多达306.9亿次浮点数计算。YOLO使用...

2020-05-07 18:31:30 851

原创 【深度学习YOLO系列】对YOLO v1的解读

YOLO v1结构它的核心思想就是利用整张图作为网络的输入,将目标检测作为回归问题解决,直接在输出层回归预选框的位置及所属的类别。输入图像大小为448∗448448*448448∗448,将其分割成了7×7=497×7=497×7=49个网络,每个网格要预测两个bounding boxbounding\ boxbounding box(候选框)的坐标 (x,y,w,h)(x,...

2020-05-05 17:37:04 470

原创 keras图像增强ImageDataGenerator类

1、图像预处理:ImageDataGenerator类keras.preprocessing.image.ImageDataGenerator( featurewise_center=False, samplewise_center=False, featurewise_std_normalization=False, samplewise_std_normalization=...

2020-04-27 22:23:12 539

原创 keras绘制网络结构[配置]plot_model

keras绘制网络结构的代码如下:from keras.utils.vis_utils import plot_model...plot_model(model, to_file="model.png", show_shapes=True, show_layer_names=False, rankdir='TB')第一次运行这个代码时会报错,这时我们需要两个包pydotplus和grah...

2020-04-27 18:37:51 817

原创 win10下同时安装多个版本的tensorflow-gpu

1、前言我之前按照keras中文文档已经安装好了tenforflow-gpu 2.1 ,并且在这个基础上安装好了keras,但是在github找的许多代码都是基于tensorflow-gpu 1.×的keras框架,同时我又不想覆盖掉我的tensorflow-gpu 2.1,并且我之前安装的cuda版本为10.1。 参照下图可以看出,链接,我安装的tensorflow-gpu 2.1...

2020-04-27 15:07:37 3189 10

原创 tensorfow2对空间数据进行池化的tf.keras.layers.MaxPool2D函数

MaxPool2D的作用是对卷积层输出的空间数据进行池化,采用的池化策略是最大值池化。在使用MaxPool2D时需要配置的参数如下:tf.keras.layers.MaxPool2D( pool_size=(2, 2), strides=None, padding='valid', data_format=None, **kwargs)参数...

2020-04-14 11:03:11 3265

原创 tensorflow2创建卷积核Conv2D函数

使用Conv2D可以创建一个卷积核来对输入数据进行卷积计算,然后输出结果,其创建的卷积核可以处理二维数据。依次类推,Conv1D可以用于处理一维数据,Conv3D可以用于处理三维数据。在进行神经层级集成时,如果使用该层作为第一层级,则需要配置input_shape参数。在使用Conv2D时,需要配置的主要参数如下:tf.keras.layers.Conv2D( filters, ...

2020-04-14 10:31:54 2498

原创 tensorflow2的模型保存与加载(save_weights、save和saved_model.save)

1、save/load weights只保存网络的一个参数,不管其他的状态,这种模式适合自己对代码有个清晰的认识用法流程如下:# Save the weightsmodel.save_weights('./checkpoints/my_checkpoint') # 提供保存的路径# Restore the weightsmodel = create_model() # 重新创...

2020-04-10 08:42:02 13108 2

原创 tensorflow2中自定义层或网络

通过自定义网络可以将一些现有的网络和自己的网络串联起来,这样可以组建各种各样的网络。1、keras.Sequential它的用法见这篇博客network = Sequential([layers.Dense(256, activation='relu'), layers.Dense(128, activation='relu'), ...

2020-04-09 09:23:11 1227

原创 tensorflow2的compile & fit函数

1、compile配置用于训练的模型。用法:compile( optimizer='rmsprop', loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None, ...

2020-04-08 11:41:25 8928 2

原创 tensorflow2中keras.metrics的Accuracy和Mean的用法

1、tf.keras.metrics.Accuracy函数说明:计算预测与真实值的准确度。用法:tf.keras.metrics.Accuracy( name='accuracy', dtype=None)例如,如果y_true为[1、2、3、4],而y_pred为[0、2、3、4],则精度为3/4或 .75 。如果将权重指定为 [1、1、0、0] ,则精度将为1...

2020-04-05 11:58:22 11508 1

马尔科夫随机场的分割.rar

在kmeans基础上实现的一种基于统计的图像分割算法,分割的效果好。马尔科夫模型是一组事件的集合。在这个集合中,事件是逐个发生,并且下一刻事件的发生只由当前发生的事件决定,而与再之前的状态没有关系。

2020-05-31

Template Matching.rar

python-OpenCV实现边缘模板匹配算法。介绍一种新的模板匹配算法,主要是基于图像边缘梯度,它对图像光照与像素迁移都有很强的抗干扰能力

2020-05-27

空空如也

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

TA关注的人

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