- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 算法之DFS算法框架
DFS算法框架前言前面说到了BFS,就少不了DFS了~算法分析DFS全称是深度优先搜索,听这个名字就知道,这个算法就是一直不断往下的“深度”搜索,思想就是:一直往深处走,直到找到解或者走不下去为止欸欸欸,等等,怎么这么像之前说到的回溯算法???没错,你感觉是没错的,实际上这个DFS就是回溯算法!!!建议同学直接翻一翻我之前提到的回溯算法那篇博文。void DFS(depth){ if (找到解 || 走不下去了) { ... return; }
2021-01-03 14:03:03
1714
原创 算法之回溯算法框架
回溯算法框架前言熟悉二叉树的同学都知道,二叉树遍历有三种:前序遍历、中序遍历以及后序遍历不熟悉也不打紧,下面给你简单科普一下:前序遍历的遍历顺序是:根节点–>左节点–>右节点中序遍历的遍历顺序是:左节点–>根节点–>右节点后序遍历的遍历顺序是:左节点–>右节点–>根节点代码如下:/* 基本的二叉树节点 */struct TreeNode { int val; TreeNode *left; TreeNode *right;
2021-01-03 13:28:02
519
原创 算法之BFS算法框架
作者的话:最近有点时间,开始回来写写算法相关的文章BFS算法框架前言BFS(广度优先级搜索)和DFS(深度优先级搜索)是比较常用的算法,其中DFS算是一种回溯算法,在二叉树中就相当于前序遍历算法。这里先分析BFS算法,为什么呢?因为BFS比较简单!废话少说,直接上分析!算法分析BFS相对于DFS最主要的区别在于:BFS找到的路径一定是最短的,但是空间复杂度比DFS要大很多。BFS算法的核心思想实际上就是将问题抽象成“图”,从一个点开始,向周围扩散。一般来说,我们写BFS算法常用的数据结构是“队列
2021-01-03 04:33:52
692
原创 【解决问题】远程连接阿里云ubuntu16.04安装的MySql失败
1、安装完MySql后,首先,在阿里云控制平台上给开放接入端口,如图:2、打开阿里云ubuntu系统,查看端口状态netstat -tulpen得到MySql地址是127.0.0.1(即是本机),MySql被绑定了本机地址,只需要在/etc/mysql/mysql.conf.d/mysqld.cnf配置文件里将127.0.0.1修改成0.0.0.0即可,即是将MySql改...
2019-03-24 02:35:50
376
原创 OpenCV2学习(10)之Mat类对象元素的获取与赋值
矩阵元素的表达:对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32S、32F 等;这些类型可以直接用 uchar、short 、float等 C/C++语言中的基本数据类型表达。如果多通道图像,如RGB彩色图像,需要用三个通道来表示。在这种情况 下,如果依然将图像视作一个二维矩阵那么矩阵的元素不再是基本数据类型。opencv中使用vec可表示...
2019-02-01 01:40:03
1939
原创 OpenCV2学习(9)之关于图片的通道以及位深
注意到 Mat 类很多构造函数的参数值包含选择图片的类型。其中图片的类型包含两种最主要的信息:图片的通道以及位深。矩阵数据类型是:CV_ <bit_depth> (S|U|F) C <number_of_channels>其中,S = 符号整型 U = 无符号整型 F = 浮点型如:CV_8UC1,CV_8SC1,CV_16UC1,CV_16SC1 ...
2019-01-31 00:26:57
1013
原创 OpenCV2学习(9)之图片的浅拷贝与深拷贝
一、引言对于Mat容器的拷贝有三种方式:(1)使用构造函数Mat A=imread("girl.jpeg");Mat B(A);//将A拷贝到B(2)利用赋值符号进行拷贝Mat A=imread("girl.jpeg");Mat B=A;(3)使用方法Mat::copyTo() Mat A=imread("girl.jpeg");Mat B;A...
2019-01-28 18:12:23
1019
2
原创 OpenCV2学习(8)之Mat类对象创建以及基本操作
1、Mat类常用的构造方法//无参数构造Mat();//创建行数为rows,列数为cols,类型为type的图像Mat(int rows, int cols, int type);//创建大小为size,类型为type的图像Mat(Size size, int type);//创建创建行数为rows,列数为cols,类型为type的图像,且全部元素(像素)初始化为 s...
2019-01-28 16:50:14
755
原创 手把手教你将Linux系统装载进U盘
1、首先得装个VMWare虚拟机。2、准备原料:Linux系统镜像文件(如:ubuntu16.04LTS)3、打开VMWare软件(因为稍后要使用U盘,建议用管理员权限打开) 3.1、创建一个虚拟机 3.2、编辑创建的虚拟机 然后添加iso镜像文件路径 然后将原来的“硬...
2019-01-28 13:28:27
10087
8
原创 MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
在ubuntu16.04上搭建自己的MQTT服务器代理 —— Mosquitto转自:https://blog.csdn.net/xukai871105/article/details/392526530 前言 MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协...
2019-01-19 12:55:42
462
原创 经典递归事件--阶乘,斐波纳契数列,汉诺塔
1、求出n的阶乘的值def factorial(n): if n<1: print('input error!') return -1 if n==1: return 1 else: return n*factorial(n-1)2、斐波纳契数列的实现,化为实际问题就是兔子的繁衍问题 ...
2019-01-14 02:33:13
268
原创 (二)浅谈元组
元组,其实跟列表很相似,列表用的是中括号来表示,而元组则是用小括号来表示,但是在初始化元组的时候,其标志性符号不是小括号,而是逗号!!!!!1、元组的初始化tuple=(1,2,3) tuple1=() #创建空元组tuple2=(1,) #当元素只有一个时,后面的逗号不能缺少结果: 但是,当元素只有一个时,若缺少后面的逗号,得出来的就...
2019-01-13 18:57:11
273
原创 (一)浅谈列表(List)
List(列表)可以包含以下所有类型元素(1)创建自定义列表:member=[123,'234','ok'](2)创建空列表member=[] (3)访问列表:访问元素(类似于C的数组),访问局部列表member=[123,'aa','bb','cc','dd','ee'](4)删除列表或者列表元素member=[123,'aa','bb','cc'...
2019-01-13 12:52:35
229
3
原创 OpenCV2学习(7)之在视频里面画矩形框并截取图片
在视频里面用鼠标截取区域然后提取出来,可以用于以后在视频或者摄像头里面截取有用信息。#include <opencv2/opencv.hpp>#include <math.h>using namespace cv;//全局变量Mat g_ImageROI;Rect g_rectangle;Point g_startPoint;Mat g_srcImag...
2019-01-13 02:46:28
3073
2
原创 PyQt5学习笔记之环境的配置(Python3.6(Anaconda3)+PyQt5+Eric6)
由于在PyQt5.7开始,PyQt5就已经不再提供.exe安装包,而PyQt5.6 exe是适配Python3.5,又由于现在Anaconda已经更新到Python3.6以上的版本,所以只能用pip的方式安装PyQt5.1、安装pyqt5,打开Anaconda Prompt:pip install pyqt52、安装pyqt5-tools:pip install pyqt5-...
2019-01-02 01:34:17
1114
原创 OpenCV2学习(6)之基本鼠标操作
上次我们学习到滑动条的添加,实际就是创建滑动条,然后按照格式写回调函数即可。现在学习的鼠标操作也有异曲同工之妙,也是按照固定的格式变写回调函数,然后识别鼠标左键与右键的标识符或者鼠标移动标识符即可。enum{ //鼠标移动标识符 EVENT_MOUSEMOVE =0, //左键按下标识符 EVENT_LBUTTO...
2018-12-30 19:59:35
505
原创 OpenCV2学习(5)之添加滑动条
当你学习OpenCV的时候,处理一张图片往往需要逐步修改相应的参数才能达到理想的处理效果,这个时候,添加一个滑动条就可以省去往返开启调试功能的麻烦操作。先上效果图:主要是三个函数:第一个函数:创建滑动条CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,...
2018-12-30 17:19:22
814
原创 OpenCV2学习(4)之好玩的边缘检测
二话不说,先上图:1、拉普拉斯算子2、Sobel算子3、Canny算子一、拉普拉斯算子简单实现://头文件#include <opencv2/opencv.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>//命名...
2018-12-30 03:08:34
548
原创 OpenCV2学习(3)之读取视频文件以及读取摄像头
知识简述:视频就是一帧一帧的图片连接而成,因此无论是读取视频还是读取摄像头,都只是将视频流一帧一帧地输出!读取视频文件://添加的头文件#include <opencv2\opencv.hpp> //添加的命名空间using namespace std;using namespace cv;//主程序int main(){ int nCount = 1;...
2018-12-30 02:22:32
1674
原创 OpenCV2学习(2)之图像腐蚀与膨胀
图像腐蚀与膨胀概念:图片的腐蚀和膨胀是针对图片中白色部分(高亮部分)而言的,而不是黑色部分。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。而膨胀就是将图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。1、膨胀:核心解读:膨胀就是求局部最大值的操作。区域B与区域A卷积,即是计算区域B覆盖的区域的像素点最大值(即白色),并且将...
2018-12-30 01:20:44
913
原创 OpenCV2学习(1)之图像显示
#include <opencv2/opencv.hpp> //头文件using namespace cv; //包含cv命名空间void main(){ // 【1】读入一张图片,载入图像 Mat srcImage = imread("F:/Image/girl.jpeg"); // 【2】初始化窗口,CV_WINDOW_NORMAL---用户可以改变窗口大小 c...
2018-12-30 00:45:10
515
原创 ubuntu16.04 安装 librealsense
1、下载realsense包:git clone https://github.com/IntelRealSense/librealsense2、更新Ubuntu 发行版,包括获取最新的稳定内核(很重要)sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade...
2018-12-27 03:38:53
3082
3
原创 【解决问题】解决Windows系统GSL的配置
从http://gnuwin32.sourceforge.net/packages/gsl.htm下载Complete package, except sources和Sources两个exe文件。然后安装好。打开 gsl 安装路径里面的lib会发现没有 libgsl.lib 和 libgslcblas.lib 这个时候打开Visual Studio自带的命令窗口。“开始”->“Visu...
2018-12-18 00:03:39
995
1
原创 机器学习之k-近邻算法简单实现
k-近邻算法属于一种分类算法。假设每一个数据都有其唯一对应的类别,k近邻算法实际就是在数据集里面确定与当前值最近的前k个点,然后确定前k个点所在的分类出现的频率,将前k个点出现频率最高的类别作为当前值的预测分类。下面以简单的程序来实现算法。from numpy import*import operator#定义数据集def createDataSet(): group=arr...
2018-12-17 01:38:02
334
原创 【解决问题】解决Windows系统Python导入OpenCV模块失败
最近在玩机器学习,安装了Python3.6之后,遇到了Python导入OpenCV模块失败的问题。import cv2报错:ImportError: DLL load failed: 找不到指定的模块。以下总结几种可行的解决方案:1、电脑缺少 Microsoft Visual C++ Redistributable for Visual Studio 2015打开“控制面板...
2018-12-16 03:11:51
5130
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人