自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (3)

原创 常用单片机介绍

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。一、51单片机51单片机是对所有兼容Intel 803

2020-09-27 09:50:36 36

原创 ROS学习笔记(一) ROS文件系统

ROS学习笔记1.ROS文件系统1.1 Catkin编译系统1.1.1 Catkin工作原理Catkin编译的工作流程:首先在工作空间catkin_wa/src/下递归的查找其中每一个ROS的package.package中会有package.xml和CMakeLists.txt文件,Catkin(CMake)编译系统根据CMakeLists.txt文件生成Makefile(位于catkin_wa/build)然后make刚刚生成的Makefile等文件,编译连接生成可执行文件(位于cat

2020-09-07 17:05:02 21

原创 ROS学习笔记(二)launch启动文件

在ROS中,当我们要运行一个节点时,需要使用rosrun命令,但当有十几个节点时,这种方法就会变得非常麻烦.而启动文件(launch file)便是ROS提供的一种可以同时启动多个节点的途径,通过配置,可以为操作多个节点提供极大的便利.1、基本元素一个完整的launch文件必须包含launch和node两个标签.1.1 launch文件的根元素,文件中的所有内容都必须包含在这个标签中:<launch> ...</launch>1.2 node用于启动节点.&lt

2020-09-07 17:04:30 60

原创 ROS学习笔记(三)sensor_msgs::LaserScan转pcl::PointCloud<T>

一、前言首先,为什么要进行数据的转换?举个例子,在ROS中,我们通过订阅Kinect的RGB图像topic就可以获取到图像数据,但当我们要对这些图像进行处理的时候,我们需要用到专门的图像处理库,比如OpenCV.因此,我们需要用到ROS提供的package,cv_brige,将ROS格式的数据转换为OpenCV适用的数据.回到本文,当我们要对激光雷达的数据进行处理时,我们也需要将ROS获取的雷达数据,即sensor_msgs::LaserScan,转化为PCL点云库可以使用的数据,如pcl::Point

2020-09-07 17:03:24 161

原创 算法分析——分治

1、分治2、Leetcode题目2.1 Leetcode169 : 多数元素题目描述:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2**题目分析:**这道题还是比较简单的,有很多种解法。比如,方法一:由于众数出现的频率大于n/2,所以在排序之后众数必存在于下标[n/2]

2020-08-19 11:27:32 38

原创 项目--python网络爬虫

记录我平常使用python进行爬虫遇到的问题和解决方案.1、python网络爬虫--构建一个基础的网络爬虫应用2、python网络爬虫--下载图片3、python网络爬虫--网页登录

2020-08-15 18:54:32 34

原创 python网络爬虫--网页登录

1、前言主要用到python的selenium库,通过模仿浏览器行为+定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能.2、selenium定位网页元素关于selenium的使用前准备可以看到我之前的一篇文章python网络爬虫--下载图片.我们有许多方法对页面的元素进行定位,对于不同的元素,我们使用最优的定位方法即可。Selenium提供了下面的方法进行元素定位:find_element_by_idfind_element_by_namefind_ele

2020-08-15 18:53:34 81

原创 python网络爬虫--下载图片

本项目将使用requests库、BeaurifulSoup库、selenium库实现下载百度图片的功能.1、前言首先,为什么要使用selenium库呢?因为在我们编写爬虫代码的过程中,可能会遇到一个问题:我们需要爬取的内容虽然打开浏览器开发者工具可以看到对应的HTML代码,但是打开网页源代码却找不到对应的内容,而且使用requests库get到的HTML代码也不包含那部分内容.造成这种问题的原因是:你想要爬取的内容采取了js动态加载的方式,属于动态网页.所谓的动态网页,是指跟静态网页相对的一种网页编程

2020-08-09 19:34:41 76

原创 python网络爬虫— —构建一个基础的网络爬虫应用

本项目使用python的requests库和BeautifulSopu来进行网页内容的爬取,首先简单介绍这两个库,之后说明爬取网页内容的一般步骤,最后以爬取豆瓣读书top250中的前50本书为例说明实际的python爬虫应用应该怎么去构建。1、requests库requests 库是一个简洁且简单的处理HTTP请求的第三方库。request 库支持非常丰富的链接访问功能,包括:国际域名和URL 获取、HTTP 长连接和连接缓存、HTTP 会话和Cookie 保持、浏览器使用风格的SSL 验证、基本的摘

2020-08-09 14:19:09 101

原创 项目——基于YUV色域转换和LZW编码的BMP图像压缩

github项目地址:https://github.com/Kevinnan-teen/ImageCompression.gitgitee项目地址:https://gitee.com/lucasnan/ImageCompression.git一、项目语言C++(std=C++11)二、操作系统windos10+ubuntu16.04 均测试通过三、运行方式进入目录内cd ImageCompression新建build目录mkdir buildcmake编译项目,生成M

2020-08-07 13:15:18 34

原创 项目——基于计算机视觉的交通场景智能应用

github项目地址:https://github.com/Kevinnan-teen/Intelligent-Traffic-Based-On-CVgitee项目地址:https://gitee.com/lucasnan/Intelligent-Traffic-Based-On-CV.git一、环境依赖ununtu16.04LTSpython3.5二、部署步骤进入目录内cd Intelligent-Traffic-Based-On-CV创建python虚拟环境pytho

2020-08-07 00:53:13 270

原创 OpenCV——图像傅里叶变换

1、OpenCV傅里叶变换相关函数首先我要说明的是,在使用OpenCV写代码做图像傅里叶变换的时候,并仅仅是调用dft函数做一个傅里叶变换这么简单的,而是先要对图像进行一些变换之后,才能得到正确的傅里叶变换结果。因此,第一部分我想先列出几个OpenCV提供的与傅里叶变换相关的函数,在了解这些函数功能的基础上,我们再进行具体的图像傅里叶变换的过程。1.1 dft()首先,OpenCV提供的傅里叶变换函数dft。其定义如下:void dft(InputArray src, OutputArray, ds

2020-08-04 18:05:28 97

原创 计算机领域国际学术会议和期刊

1、计算机视觉领域1.1 ICCVICCV,英文全称International Conference on computer vision,即国际计算机视觉大会。由IEEE主办,与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议,被澳大利亚ICT学术会议排名和中国计算机学会等机构评为最高级别学术会议,在业内具有极高的评价。不同于在美国每年召开一次的CVPR和只在欧洲召开的ECCV,ICCV在世界范围内每两年召开一次。ICCV论文录用率非常低,是三大会议中

2020-08-03 22:40:17 77

原创 git常用命令

文章首发于我的个人博客首先给出个人一般常用的Git工作流程,然后给出Git具体的命令及其使用场景# (1)首先我在远端仓库,如github创建空的仓库# (2)在本地新建与远端仓库同名的文件夹,进入文件夹内使用`git init`命令初始化git工作空间# (3)使用`git remote add origin <git_url>`命令将仓库连接到刚刚新建的远程仓库# (4)使用`git add <file>`命令将本地仓库写好的代码添加到暂存区# (5)使用`git

2020-07-05 08:30:45 3005

原创 配置github和gitee(码云)共存的Git环境

1.前言为什么要配置github和gitee共存的环境?对我来说,首先,github的访问速度比较慢,相应的使用git提交的速度也比较慢,虽然通过修改HOSTS可以对访问速度慢的问题有一定的改善,但是速度终究不能让人满意.而使用gitee则可以很好地避免这个问题.其次,github对我更大的作用是寻找一些大型的开源项目,而gitee因其速度优势可以作为我的个人项目云平台,这样我在windows和Linux的代码就可以很方便地通过gitee进行同步.2. SSH配置2.1清除已有的git配置如果你之前

2020-07-04 19:36:30 3372

原创 windows10下配置OpenCV+CMake+VS

一、下载OpenCV(可执行文件)官网地址(有梯子的可以下载)CSDN下载地址(我将3.4.10和4.2.0两个版本的打包上传到CSDN,有C币的可以在这里下载)百度网盘地址 提取码:7tff(我也在百度网盘上传了一份,有条件的可以去网盘下载)二、解压OpenCVwindos10下直接运行exe文件解压到本地即可。三、配置环境变量首先,将解压后的OpenCV文件夹下的opencv\build\x64\vc15\bin全局路径添加到系统环境变量中。(不会有同学不知道怎么添加系统环境变量吧?不会

2020-07-03 20:42:46 3376

原创 Github加速访问

文章首发于我的个人博客问题来源github为什么访问速度慢,而且使用git clone 命令在本地克隆项目时速度也很慢呢?首先,了解一下CDN(Content Distribute Network)的概念。CDN可以直译为内容分发网络,CDN解决问题是如何将数据快速可靠地从源服务器传递到用户。用户获取数据时,不需要直接从源服务器获取,通过CDN对数据的分发,用户可以从一个较优质地服务器获取数据,从而达到快速访问。自然,我们可以想到,由于GitHub的加速分发CDN域名github.global.ss

2020-06-28 12:22:17 3041

原创 多媒体计算与通信

1. 多媒体通信研究多媒体信息在各种网络环境下传输的问题,以及各种网络之间的无缝切换技术。1.1 通信通信原理 :信息、信源、信道、调制解调通信原理 :基带、低频/高频、射频、天线数据通信 : 电路/包交换、骨干/核心网、广域网/局域网、单工/双工、多路复用、FIFO、协议计算机网络 : ISO七层协议、地址/端口、TCP/IP、Socket、单播/组播、路由器、交换机、网关1.2 EE视角看通信1.3 CS视角看通信1.4 多媒体通信系统EE视角CS

2020-06-21 19:48:54 293

原创 计算机视觉&图像处理资源汇总

文章首发于我的个人博客前言写这篇文章主要是汇总一下我在学习CV和DIP过程中发现的一些个人觉得非常不错的资料,在这里做一个总结,一方面是整理一下这些资料方便自己查阅,另一方面分享给其他同学做一个参考。计算机视觉首先必须要提前说明 计算机视觉绝对不等于卷积神经网络。卷积神经网络只不过是目前用于解决识别类的问题中效果最好的一种方法而已,当然它还有其他的一些应用,在这里不做过多的赘述,但是我要表达的是计算机视觉是一个非常大的概念,甚至从某种角度来说图像处理也在它的范围之内,而CNN仅仅是其中一部分罢了。

2020-06-21 15:03:51 163

原创 图像压缩——LZW压缩算法

LZW压缩算法1. LZW基础概念之前提到的算术编码、霍夫曼编码等技术集中在消除编码的冗余上,而本文要讲的LZW编码是一种针对空间冗余的无误差压缩方法。LZW算法o又叫“串表压缩算法”,就是通过建立一个将字符串和其对应的记号构成的表(把已经出现过的字符串映射到记号上),用较短的代码来表示较长的字符串来实现压缩。需要注意的是,LZW算法中字符串和记号的对应关系是在压缩的过程中动态生成的,并且隐含在压缩数据中,解压的时候也是一步一步还原编码并动态生成字典的过程。2. LZW算法详解2.1 LZW编码

2020-06-21 11:04:50 220

原创 图像压缩 -- BMP图像格式详解

文章首发于我的个人博客BMP又称为BitMap(位图)。BMP文件的图像深度可选lbit、4bit、8bit及24bit。但一般的bmp图像以24位图像为主,即用R、G、B三种颜色各用8个bit来表示,这样的图像我们称为真彩色,这种情况下是不需要调色板的,也就是所位图信息头后面紧跟的就是位图数据了。因此,这种情况下,bmp图像从文件头开始偏移54个字节就是bmp的图像数据了。下面将用Notepad++为分析工具来对BMP图像格式做一个剖析。我使用的图像如下(图像大小为1.17MB):需要注意的是,

2020-06-17 13:12:35 151

原创 使用notepad ++ 查看图片

1.安装插件点击菜单栏 “插件” -> “插件管理” -> 安装"HEX-Editor"2.使用插件点击菜单栏 “插件” -> “HEX-Editor” -> “View in Hex”效果图

2020-06-16 23:05:07 285

原创 霍夫曼编码

文章首发于我的个人博客算法原理由上图来说明霍夫曼编码的原理。首先,假设我们要进行编码的字符序列为"AAAAAAABBCCCCDDDD",统计这些字符出现的频率,然后将这些字符按频率从低到高排序,并且存放在列表list1中。然后,从list1中取出频率最低的两个字符,分别作为左子树和右子树构成一个新的节点,并将新的节点放在list1中,同时删除刚刚从list1中取出的两个字符。以此类推,直到list1中只剩一个节点时停止,如此便可构成一棵霍夫曼树。其次,就可以用构造的霍夫曼树来完成霍夫曼编码。从根节点开

2020-06-15 15:20:17 378

原创 算术编码

前言这篇博客主要总结大二下课程《信息论》实验的内容。主要包含固定模式的算数编码以及自适应模式的算术编码。我将首先介绍这两种算术编码的基本思想和实现思路,然后给出具体的python代码并对代码中的一些关键点进行解释说明。固定模式的算术编码问题设信源可能输出的符号是26个字母,且每个字母出现的概率为:a, b, c, d, e, f 均为0.1,其它是等概的,试编写程序可以对任意字母序列(如presentation)进行固定模式的算术编码,并进行相应的译码。算法原理以上图为例说明固定模式算术编码的

2020-06-14 19:26:15 169

原创 VHDL同步复位与异步复位

文章首发于我的个人博客同步复位只有当“时钟沿”到来时,才能完成复位。异步复位无论“时钟沿”是否到来,只要复位信号到来,就完成复位。Example以D触发器为例来说明同步复位和异步复位的区别。codelibrary IEEE;use IEEE.STD_LOGIC_1164.ALL;ENTITY Reset IS PORT( clock, clear, d : IN STD_LOGIC; q : OUT STD_LOGIC );END ENTITY Reset;ARCHIT

2020-06-04 22:42:02 383

原创 VHDL程序结构

文章首发于我的个人博客下图所示为一个一般意义上的VHDL结构模式。其中实体和结构体是VHDL程序的必要部分,他们可以构成最基本的VHDL程序。通常,一个VHDL程序还包含库和程序包,比如最常用的IEEE库中的STD_LOGIC_1164程序包。一个实用的VHDL程序也可以由一个或多个实体构成,可以将一个实体作为完整的系统直接使用,也可以将其作为一个底层的配置,即元件来例化。配置(CONFIGURATION)常用于行为仿真,可以与对特定的结构体进行配置,选择控制。[外链图片转存失败,源站可能有防盗链机制,

2020-06-02 15:24:10 175

原创 VHDL信号与变量的区别

文章首发于我的个人博客变量(VARIABLE)在VHDL中,变量只能在进程(PROCESS)和子程序(SUBPROGRAM)中使用。变量不能将信息带出它所被定义的设计单元。变量的赋值是一种理想的数据传输,是立即发生的,没有延时的。定义变量的语句VARIABLE 变量名 : 数据类型;变量赋值(:=)变量名 := 表达式;其中表达式可以为运算表达式或者数值。信号(SIGNAL)在VHDL中,信号的定义和使用范围是实体(ENTITY),结构体(ARCHITECTURE)和程序包(PACKA

2020-06-02 15:22:48 131

原创 如何在word中粘贴代码

文章首发于我的个人博客工具一:planetB个人博客提供的工具工具二:CodelnWord网站

2020-06-01 14:05:23 178

原创 Python曲线拟合

Python曲线拟合文章首发于我的个人博客前言这篇文章的由来:前几天在做大学物理居家实验水滴法测量声速 的时候需要使用phyphox软件导出的数据拟合y=1/(a+b*x)曲线。虽然老师要求使用Origin软件拟合,但是在使用还是有点用不明白(太懒),所以想用python来拟合。使用scipy提供的curve_fit函数给出具体的函数形式(任意),用最小二乘法去拟合。可以在func定义要拟合的曲线下面给出具体的代码点击下载数据(我把我做大物实验的数据放在这里)import numpy as n

2020-05-26 10:56:52 440

原创 Quartus ii 软件仿真基本流程(使用VHDL)

Quartus ii 软件仿真基本流程(使用VHDL)文章首发于我的个人博客这是VHDL系列教程的第一个教程。所谓教程,其实也就是记录我本人在学习过程中遇到的问题和学习内容的笔记,分享在这里供其他初学者参考,如果博客中出现任何错误或不严谨的地方,您可以在下方评论区指出来,您的反馈是对我最大的帮助,万分感谢。这篇博客主要介绍使用Quartus ii软件进行仿真的步骤,由于是第一篇所以过程详细但有些冗余(问题不大),之后的教程应该专注于VHDL语言本身以及Quartus ii的一些使用技巧。本教程将用

2020-05-20 01:26:54 1403

原创 Python文件I/O

文章首发于:我的个人博客I/O流##1.更漂亮的输出格式使用str.format()基本用法>>> print(‘We are the {} who say “{}!”’.format(‘knights’, ‘Ni’))We are the knights who say “Ni!”花括号和其中的字符(称为格式字段)将替换为传递给 str.format() 方法的对...

2020-04-29 11:34:08 77

原创 ubuntu下安装和卸载VScode

ubuntu下安装和卸载VScode安装download下载.deb包使用命令sudo apt install ./<file>.deb安装vscode使用命令whereis code查看安装位置卸载使用命令whereis code查看安装位置使用命令sudo apt-get remove code # 只是卸载,保留配置使用命令sudo apt-get ...

2020-01-09 23:03:12 990

原创 anaconda添加国内源及安装第三方包

一、anaconda添加国内源查看当前环境下已有的源conda config --show channels添加国内源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.ust...

2019-12-13 22:44:38 662

原创 计算机硬件科普——GPU

GPUGPU又称图形处理器、显卡, 负责渲染图片、视频以及2D、3D内容的显示。相比于CPU的4核, 8核, GPU则是由成千上万个为多任务而设计的小核心封装而成的, nvidia管他叫CUDA, AMD叫它流处理器。事实上大部分CPU也集成了核心显卡, 也就是说能够承担GPU的工作,即CPU和GPU公用一块内存,所以和中高档的独立显卡比起来,其性能差的可不是一点半点。那么我们怎么来分辨...

2019-10-21 22:18:21 385

原创 解决ubuntu下zip解压乱码问题

ubuntu下zip解压乱码问题方法一使用unar解压, 首先安装unarsudo apt-get install unar其次unar filename.zip方法二使用python脚本, 代码如下#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport sysimport zipfilefile...

2019-10-15 13:10:27 67

原创 计算机硬件科普——CPU

CPU我们通常将cpu比喻为人类的大脑,是计算机的核心部件, 决定了一台电脑的运算性能好坏。通常cpu核心参数有:架构、缓存、主频、核心、线程。架构1、CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CP...

2019-10-06 10:30:31 492 1

原创 计算机硬件科普——机械键盘

机械键盘机械键盘的优势1、机械键盘与传统薄膜键盘最大的不同,就在于整体的手感。前者段落感清晰、敲击时会发出明显的声音,能够让用户体验到敲击键盘的乐趣,这就像我们所说的驾驶乐趣一样。而后者手感相对于前者来说没有那么鲜明的特性,不会发出明显的声音,敲击感觉也不那么干脆利落,在敲击乐趣上远远比不上机械键盘;2、机械键盘寿命更长,像Cheryy各类轴体平均的使用寿命超过2000万次,且得益于机械...

2019-10-05 08:29:00 299

原创 计算机硬件科普——硬盘

固态硬盘(SSD)SSD最基本的组成部件为:主控,闪存,固件算法。1、主控:负责固态硬盘里所有数据的管理,如果说SSD是一个大型仓库, 那么主控就相当于仓库的管理员,它负责给进出仓库的每一个货物编号,并放到相应的货架上。就目前来讲,SSD主控芯片的运算能力由制造工艺‘核心面积大小(晶体管数量)、 核心数量、频率来决定。可以说,一款主控芯片的好坏直接决定了SSD的实际体验和使用寿命。目前...

2019-10-04 10:23:23 212

原创 计算机硬件科普——内存

内存内存全称是随机存储设备 (RAM)。 内存是用来存放数据的地方,CPU不能从硬盘中直接读取数据,而是先要把硬盘中的数据放到内存中,然后CPU再从内存中读取数据。内存有几个重要的参数1、代数:内存现在已经发展到第五代也就是DDR4了,从DDR1到DDR4,后面的数字也就是相应的代数,每一代内存的频率都会有所提升。2、频率:指CPU/GPU对内存访问的频率, 频率越高,也就是CPU单位时...

2019-10-03 23:05:26 136

原创 pip安装tensorflow时出现ERROR: Could not install packages due to an EnvironmentError: HTTPSConnection

使用pip安装tensorflow时,出现错误ERROR: Could not install packages due to an EnvironmentError: HTTPSConnection(host=‘files.pythonhosted.org’, port=443): Max retries exceeded with url:…解决方法:直接下载tensorflowht...

2019-10-02 20:07:43 5516

opencv3.4和4.2 .exe版本.rar

opencv3.4.10和4.2.0的 exe版本。在windos10下可直接运行然后选择路径在本地安装,避免了源码编译安装的复杂,但同时也缺少opencv_contrib的部分,所以利弊均有,但是对于初学者来说这是性价比最高的安装方法。所需积分不多,因此选择下载。

2020-07-03

学生管理系统.rar

此文件为一个小型学生管理系统,仅供互相交流学习。

2019-07-02

适合初学者的C++编程50题

适合初学者的C++基础程序。通过练习基础编程可以是初学者对C++的基本规则有一定深度的了解。

2018-12-05

空空如也

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