自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 WebRTC学习总结(4):多人视频通话的实现思路

在1v1视频通话中,虽然有发起人和接收人的概念,但是消息的发送和接受是“没有对象”的,也就是,通过服务器转发的message中没有指明接受消息的对象,这在房间里最多容纳两个人的前提下不会产生问题,但是在多人通话的过程中,就失效了。对于我来说,我采取的措施是在offer、answer和candidate消息中加入新的属性,也就是“callee”, 即呼叫人,举个例子:function handleIceCandidate(event) { //将本地的candidate发送给对方 cons

2020-06-08 16:20:37 1123 2

原创 WebRTC学习总结(3):从1v1视频通话的实现说一说RTCPeerConnection的建立

RTCPeerConnection 接口代表一个由本地计算机到远端的WebRTC连接。该接口提供了创建,保持,监控,关闭连接的方法的实现。一对一视频对话的时候,连接过程如下所示:这个过程是不是看起来还挺清晰的?但是这只是表述了媒体信息交换的过程,别忘了还有网络信息~接下来我们就先好好捋一捋PC建立的过程吧!A打开本地视频流,创建PeerConnection对象,将本地音视频流封装成MediaStream添加到PeerConnection中;A通过CreateOffer创建offer信息,

2020-06-08 15:35:09 1094

原创 WebRTC学习总结(2):Nodejs和socket.io搭建信令服务器

信令服务器webRTC采用的是“端对端”对等连接,在信息通路形成之后,可以没有服务器参与,但是信息通路的搭建不能没有信令服务器。信令服务器主要用于交换以下信息:会话控制信息:比如加入房间,离开房间,禁言,错误等信息。媒体信息:中转通过SDP来表示的offer,answer信息,如如各自的音视频解码方式,带宽等。网络信息:通过信令服务器“发现”参与P2P连接的两个webRTC客户端。首先将由一端将网络相关信息传到信令服务器,服务器帮它交换到对端,对端拿到你的信息后,若在同一局域网内,直接通过P2P

2020-06-03 16:06:11 1177 1

原创 WebRTC学习总结(1):本地视频的获取和录制

WebRTC学习总结(1):本地视频的获取和录制简单介绍1. 本地视频的播放2. 视频录制简单介绍WebRTC ( Real-Time Communications)是一个可以在 Web 应用程序中实现音频、视频和数据的实时通信的开源项目,它封装了很多音视频的采集、处理功能,比如音视频流的编解码、降噪和回声消除等。通过WebRTC,我们可以方便地获取优化后的媒体流,将其输入到本地或转发给其他对等端。WebRTC设计的初衷是为了在无插件的条件下实现两个浏览器之间**点对点(peer to peer,P2

2020-06-03 11:05:13 2424

原创 【报错】(webRTC):navigator.mediaDevices undefined

最近做了一个通过webRTC实现在线视频功能的网页,在自己的电脑上用localhost打开两个网页是可以的,但是设置了一个简单的HTTP请求的NodeJS服务器之后,在局域网中用ip地址访问就不行了,浏览器会弹出 navigator.mediaDevices undefined 的错误。网上搜了蛮多的,终于找到了原因:通过 MediaDevices.getUserMedia() 获取用户多媒体权限时,需要注意其只工作于以下三种环境:localhost 域 开启了 HTTPS 的域 使用 f

2020-05-11 16:27:32 6370 2

原创 【报错】(Javascript):Cannot set property 'onclick' of null

这个错误呢,很明显,就是找不到设置“onclick”属性的对象,有两个解决思路:1. 改变JS文件的加载位置原因:当js文件放在head里面时,如果绑定了onclick或者onmouseover事件,就会出现如上图类似的错误,是因为浏览器的加载你写的html文档的顺序是从上往下,加载完按钮节点才执行的js,所以当浏览器自顶向下解析时,找不到onclick绑定的按钮节点,于是报错。解决办法:第一,把js文件放在底部加载;第二,使用window.onload=function(){}包裹js内容。

2020-05-11 16:03:32 954

原创 【JavaScript】4.初识 jQuery

本来这一篇要写JavaScript的事件处理的,但是内容好多啊,这一套那一套的,看得有点晕……查资料的时候发现好些东西大家都是用 jQuery 实现的,据说挺好上手的,那我就先看看 jQuery,之后和JS对照着学吧。jQuery是一个JavaScript函数库,它和JS的联系与区别是:JavaScript是用于Web客户端开发的脚本语言,Ajax是基于JS语言,主要组合JS、CSS、X...

2020-04-23 11:23:11 520

原创 【数据库系统工程师复习笔记】0.考试大纲及教程目录

作为一个小白,打算以通过数据库系统工程师的考试为目标,按照大纲系统的学一学计算机基础和数据库的相关内容~会在学习的过程中把及时总结知识点整理出来~先上大纲!数据库系统工程师考试大纲 考试说明 1.考试要求 掌握计算机体系结构以及各主要部件地性能和基本工作原理; 掌握操作系统、程序设计语言地基础知识,了解编译程序地基本知识; 熟练掌握常用数据结构和常用算法...

2020-04-19 21:43:31 2138 1

原创 【JavaScript】3.创建函数

DOM的树状结构 节点:元素节点、文本节点、属性节点 节点关系:同级、父子级等等 获取节点:querySelector、querySelectorAll等等 节点操作:增删改查 事件绑定:事件流和事件委托应该了解一下...

2020-04-17 15:37:07 368

原创 【JavaScript】2.复杂数据类型:数组和对象

三、对象对象是一个非常重要的概念,一定要灵活掌握:对象:属性的无序集合,当属性值为函数的时候,我们叫这个函数为对象的方法。 数组:元素的有序集合。了解数组的常用方法 日期对象:获取年月日时分秒 数学对象:获取随机数 了解其他对象:正则表达式、包装对象,其实函数也是对象,不过这些简单了解一下就行。作者:李吉阳链接:https://zhuanlan.zhihu.com/p/...

2020-04-17 11:41:09 624

原创 【JavaScript】1. 变量声明与控制结构

JavaScript web 开发人员必须学习的 3 门语言中的一门:HTML定义了网页的内容 CSS描述了网页的布局 JavaScript网页的行为本教程是关于 JavaScript 及介绍 JavaScript 如何与 HTML 和 CSS 一起工作。JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑...

2020-04-16 19:42:42 383

原创 【HTML+CSS】5.简单代码分析

通过之前的内容学习了HTML和CSS基础知识之后,我们就可以上手写一些”徒有其表“的网页了~在这个过程中,我们可以参考别人的网页设计和代码,多多学习总结。下面是一个登陆界面的代码,来自黑子Kuroko,网页制作:一个简易美观的登录界面。我把其中的HTML和CSS代码写了比较详细的注释,感受一下效果。HTML部分:CSS部分:/*主体部分*/body { back...

2020-04-15 19:05:11 604

原创 【HTML+CSS】4.CSS排版:文字样式和文本属性

经过漫长的上一篇,这篇内容总体来说内容比较短,也比较简单,连目录都省了~1.CSS字体的属性CSS字体常用的功能如下表所示,都比较简单,就不展开说了:但还是有些需要注意的地方:CSS中的单位是必须要写的,因为它没有默认单位。font-size的单位可以是px(像素)、em(印刷单位)、%(百分比,相对周围的文字的大小)、in(英寸)、cm(厘米)、mm(毫米)、pt(点,1点...

2020-04-15 11:01:44 886

原创 【HTML+CSS】4.CSS布局:盒模型和定位

之前讲到,样式是CSS语法的最小单元,每一个样式都由选择器和声明(规则)两部分组成,而声明又由属性和属性值组成。上一篇讲了选择器,这里就开始进入“属性”部分了。要想灵活应用CSS设计出美观且多样的页面,就需要熟悉CSS的各类“属性”,CSS中包含超过100种属性,包括字体属性、文本属性、边框属性、边距属性、布局属性、定位属性、打印属性等。作为初学者,我觉得我们应该循序渐进,先集中熟悉最常用...

2020-04-14 11:51:54 1855

原创 【HTML+CSS】3.CSS选择器

css样式表乍一看挺简单的,但是你随便下一个实例,哇,这都啥啊,点点划划的看不懂……还是继续学习吧!前面说过了,CSS 语法规则就是:选择器+声明。那我们就首先看看有哪些选择器吧。1 标签选择器标签选择器也称为元素选择器,是指直接使用HTML标签作为选择器名称。html {background-color: black;} /*整个文档添加黑色背景*/p {font-size...

2020-04-13 19:44:49 451

原创 【HTML+CSS】2. CSS基础整理

CSS 指层叠样式表 (CascadingStyleSheets)是为了解决内容与表现分离的问题CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:选择器通常是您需要改变样式的 HTML 元素。每条声明由一个属性和一个值组成。属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。注释是用来解释...

2020-04-13 15:47:29 252

原创 【HTML+CSS】1. HTML基础整理

最近也是刚开始接触HTML和CSS的内容,小小整理一下。我们知道,HTML(HyperTextMarkupLanguage,超文本标记语言)是用来描述网页的一种语言,通过使用标记标签(markup tag)来描述网页。HTML 标签由尖括号包围,且通常成对出现。1. <!DOCTYPE> 声明首先,在HTML的开头,需要有一个声明<!DOCTYPE html&...

2020-04-12 17:43:02 268

原创 【PyQt5报错】返回文本框内容

今天又遇到一个非常匪夷所思的报错……我做了一个非常基础的路径选择的功能:然后选择路径后在之后的操作中需要读取 lineEdit 的路径,进行后续的操作。所以我就用了 定义了一个功能和对应按钮绑定,点击按钮后会执行:dir_path = self.lineEdit.Text() 结果,竟然报错了!Process finished with exit code -107374...

2020-04-02 15:59:17 756 1

原创 pip太慢总失败?换个源试试!

pip国内镜像源:  阿里云https://mirrors.aliyun.com/pypi/simple/  中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/  豆瓣(douban)https://pypi.douban.com/simple/  清华大学https://pypi.tuna.tsinghua.edu.cn/sim...

2020-03-12 10:50:53 192

原创 Ubuntu 报错:E: Package ' *** ' has no installation candidate

在Ubuntu中安装软件的时候有时候会出现 Package has no installation candidate 的问题,如下图所示:此时,亲测有效的方式是:打开终端,在终端下运行命令:sudo apt-get update update之后再upgrade一下:sudo apt-get upgrade 之后重新运行之前的安装命令即可。在更新过程中可能会一直出现[waiti...

2020-03-11 10:56:43 24770 1

原创 【python-机器学习】1. Numpy基础操作(向量与矩阵的创建、元素选择、属性展示、基础计算、矩阵计算)

目录1. 向量的基本操作2. 矩阵的基本操作2.1 创建矩阵2.2 选择元素2.3 展示属性2.4 基础计算umpy是python机器学习技术栈的基础,它可以对机器学习中常用的数据结构(向量 vector、矩阵 matrices、张量 tensor) 进行高效的操作。因此,在最开始,我们先要熟悉 numpy 的基础操作。1. 向量的基本操作Numpy的主要数据结...

2019-12-17 17:27:32 997

原创 【错误笔记】Pandas:DataFram.append 没有添加新数据行

在pandas中,可以采用dataframe.append()函数来向数据帧中添加新的数据行,直接使用 dataframe.append(data)是错误的,再查看dataframe,还是不会显示新增加的内容……正确的使用方式是赋值操作:dataframe = dataframe.append(data)欧了!!...

2019-12-11 16:03:59 1204 1

原创 【python-机器学习】2. 稀疏矩阵

在机器学习中,数据集往往非常庞大,但是很多情况下,其中包含大量的零元素。在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。稀疏矩阵只保存矩阵中的非零元素,忽略值为零的剩余元素,这样能节省大量的计算成本。在压缩的稀疏行(compressed sparse row, CSR) 矩...

2019-12-11 10:21:47 802

原创 【OpenCV-Python】滑动条的创建和使用(createTrackbar())

滑动条(Trackbar)是一种可以动态调节参数的工具,它依附于窗口而存在。由于OpenCV中没有“按钮”功能,我们还可以用仅含0/1的滑动条来实现按钮的按下和弹起(开启和关闭)效果。createTrackbar函数用于创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。该函数的参数有:cv::createTrackbar(const String& trackbarnam...

2019-11-04 15:11:29 7186 3

原创 【python-docx】Python读写Word文件

python-docx是一个在Python环境下读写word文档的“利器”。在使用前可以通过pip install python-docx命令安装,再通过import docx 引用即可。下面简单介绍一下 python-docx 的基本操作。1、新建/打开及保存文档的新建和打开比较简单,只需要用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文档。对文档...

2019-10-31 19:25:29 7371 3

原创 《计算机双目立体视觉》学习笔记:对极几何

由双目立体视觉系统获得的来自同一场景的两幅图像之间存在着一定的约束关系,也就是说,当我们用两个相机在不同的位置拍摄同一个场景或者物体时,如果两张照片中的景物有重叠的部分,那么这两张照片之间就存在一定的对应关系,用来描述这种关系的就是对极几何(epipolar geometry)。首先,我们结合图1明确一下之后提到的各种概念所指的对象:匹配点(matching points):由同一物点在左...

2019-10-24 16:18:09 1998

翻译 【MQ翻译】非线性最小二乘问题的求解方法:1. Introduction and Definitions

一直想看非线性最小二乘问题,但是每次都看得“不求甚解”、“零零散散”,刚好在网上下载到了一个英文版的教程:METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS(点此下载.pdf),感觉介绍的还不错,内容也没有特别长,所以就自己翻译了一版,供大家交流,如有错误还请指正。在本册内容中,我们讨论以下问题:定义1.1 最小二乘法找到一个局部极小值 ,使得...

2019-10-17 10:04:27 339

原创 【MQ笔记】聊一聊空间(线性空间、赋范空间、度量空间、内积空间、欧氏空间、酉空间)

哇,开始重新补数学知识了以后,才发现有好多“XX空间”这样的概念啊,这本书说这个,那篇文章又用那个,搞得人云里雾里,所以在这里把基础知识整理一下,主要关注“空间”概念本身和概念之间的区别。线性空间/向量空间线性空间=向量空间!!这两个概念是等价的。线性空间的概念如下:简单来说,线性空间就是定义了加法和数乘运算、且满足上述八条运算规律的非空集合。常见的线性空间有:实数域;全体n维...

2019-10-14 09:55:41 8834

原创 傅里叶变换前传:基础知识(卷积、内积、正交)

线性系统和卷积积分接受一个输入,并产生相应输出的实体就是一个系统。对于一个特定的系统,它的输入、输出可以看做是相同变量的不同函数。假定一个系统,当其输入为时,输出分别为,若满足【叠加性】,则该系统为线性系统。由此还可以得到,【均匀性/ 齐次性】。如果对于某线性系统,其输入输出关系为,当输入信号沿着时间轴平移T,有,则称该线性系统具有移不变性(非时变性),就是系统的参数不随时间而变化。...

2019-10-12 15:59:22 14476

原创 【数字图像处理】图像的数学变换之傅里叶变换

傅里叶变换是分析线性系统的一个有力工具。 从数学意义上说,傅里叶变换将一个任意的周期函数分解成为无穷个正弦函数的和的形式;从物理效果上看,傅里叶变换实现了将信号从空间域到频率域的转换。关于傅里叶变化的讲解,很多大神都写得非常详尽了,通过下面几篇博文,可以让大家对傅里叶变换何相关知识有一个全面的了解,在这里我主要是想从图像处理中的角度谈一谈自己非常浅显的理解。韩昊-傅里叶分析之掐死教程(完整版...

2019-10-09 16:12:16 9027

原创 【小白知识之】命名规范约定

使用一套成熟的命名规则,可以极大地增强代码的可读性,方便程序员之前相互交流。编程中常用的命名规则如下:参考:《代码大全第二版》 《OpenCV3编程入门》...

2019-10-09 09:12:55 137

原创 【OpenCV-Python】图像的载入、显示和输出(imread()、imshow()、waitKey()、namedWindow()、imwrite())

图像的载入:imread()函数imread()函数可以用来非常便捷地读取文件中的图片到Opencv中。这个函数一般需要两个参数:(1)载入图片的路径名。如果图像文件在工程文件夹下,可以直接用文件名读取,如“cat.jpg”,否则需要输入完整的访问路径,如“D:\\test\\lena.png”。这里还有几个tips: imread函数中,一个点代表省略当前文件夹路径,两个点则代表回...

2019-10-08 18:50:56 1231

原创 小白知识之:聊聊显卡(功能,分类,原理,接口,性能评价)

目录1. 显卡概述2. 显卡分类3.显卡工作原理4.显卡的接口1) VGA接口  2)DVI接口3)HDMI接口  4)DP接口5.显卡性能评价1. 显卡概述显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备...

2019-09-26 18:42:55 4022

原创 程序员的自我修养之数学基础13:极大似然估计

极大似然估计(maximum likelihood estimation,MLE),顾名思义,就是“看起来最有可能的估计”。比如说,我们看到一个黑人,会猜测他来自非洲或者美洲,这就是基于自己的经验得到的“最像”事实的推断。极大似然估计的基本原理,就是概率最大的事件,最可能发生,因此在一次试验中就出现的事件应当具有较大的概率。比如刚才的问题中,因为非洲黑人比例最高,那么看到一个黑人,这个黑人来自非洲...

2019-09-26 11:50:16 499

原创 【Python基础】Array对象的切片操作

矩阵运算是图像处理最基础的操作之一,Python中提供了非常方便的Array对象,也就是多维数组,可以让我们便捷地定义矩阵。下面,是我在学习过程中整理的关于np.array对象的切片操作方法,让我们一起看看a[:,0]、a[:,1]、a[:,:,0]、a[:,:,1]、a[:,m:n]和a[:,:,m:n]都代表着什么,希望可以对大家有点帮助~撒花

2019-09-20 16:57:10 923

原创 【MQ笔记】Harris角点检测2:算法实现(OpenCV+自主实现)

在学习了Harris角点检测算法之后,让我们趁热打铁快点来实践一下。在这篇博文里,我选择了相机标定中最经典的棋盘图为对象,用python语言,通过调用OpenCV中的connerHarris()函数 和 根据算法一步步自主计算 两种方式实现了Harris角点的提取。chessboardOpenCV实现OpenCV中定义了connerHarris()函数,参数如下:  • ...

2019-09-20 11:35:35 855 1

原创 【MQ笔记】Harris角点检测1:算法详解

目录什么是角点?Harris角点检测算法Harris角点的性质什么是角点?正如我们描述一个物体,需要点明颜色、形状、材质等“关键词”一样,当我们处理图片的时候,也要着重关注能反映或描述图像本质的“特征(feature)”。这里的特征包括全局特征(直方图、方差)和局部特征(角点、边缘点)等。角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种...

2019-09-19 10:44:44 3072

原创 程序员的自我修养之数学基础12:协方差、相关系数与协方差矩阵

1. 协方差之前,我们讲了随机变量的期望和方差,但是这两个都只用于描述单一的变量,也就是一维变量(可以理解为数轴上的数据点)。那么对于多维变量(平面或空间内的数据点),如何描述变量和变量之间的关系呢?比如说,对于每个学生的各科成绩,我们想知道,数学成绩和物理成绩是不是存在联系?体育好的同学是不是英语不好?协方差就是这样一种用来度量两个随机变量关系的统计量。期望值分别为E(X)和E(Y)的随...

2019-09-12 16:42:33 620

原创 程序员的自我修养之数学基础11:期望、方差、常见分布(均匀分布、二项分布、泊松分布、正态分布)

目录一、期望1.离散型随机变量的期望2.连续型随机变量的期望3.期望的性质二、方差和均方差1.定义2.计算三、常见分布1.均匀分布2.二项分布和几何分布3. 泊松分布4.正态分布一、期望期望这个概念,初高中就学过了吧,所以这里就简单说一下定义。1.离散型随机变量的期望2.连续型随机变量的期望3.期望的...

2019-09-12 10:33:51 4168 2

原创 【MQ笔记】SVD分解练习(Python)(矩阵分解,图像处理,求解超定方程)

目录直接对矩阵进行奇异值分解利用SVD分解压缩图像利用SVD分解求超定方程的解直接对矩阵进行奇异值分解已知矩阵,对其进行奇异值分解。import numpy as np#创建矩阵AA = np.array([[1,5,7,6,1],[2,1,10,4,4],[3,6,7,5,2]])#利用np.linalg.svd()函数直接进行奇异值分解#该函数有三个返...

2019-09-09 18:01:09 1724

Linux基础教程-基于Ubuntu.pdf

适合初学者的Linux教程,共有24课,还有配套的单元复习和题库。

2019-10-24

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

TA关注的人

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