自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 线程切换与进程切换以及开销

在这里插入代码片```1.前言 为了更好的了解上下文切换,需要我们了解虚拟内存的概念。 虚拟内存是操作系统为每个进程提供的一种抽象,每个进程都有属于自己的、私有的、地址连续的虚拟内存,当然我们知道最终进程的数据及代码必然要放到物理内存上,那么必须有某种机制能记住虚拟地址空间中的某个数据被放到了哪个物理内存地址上,这就是所谓的地址空间映射,也就是虚拟内存地址与物理内存地址的映射关系,那么操作系统是如何记住这种映射关系的呢,答案就是页表,页表中记录了虚拟内存地址到物理内存地址的映射关

2021-03-31 16:15:33 565

转载 进程切换与线程切换的代价比较

http://www.jb51.net/article/102004.htm进程切换分两步:1.切换页目录以使用新的地址空间2.切换内核栈和硬件上下文对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的。切换的性能消耗:1、线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中

2021-03-31 16:12:25 394

原创 码率,帧率,分辨率_详解

大家在处理视频图像中肯定遇到过一些名词,如分辨率,码率,帧率,他们的意义是什么,他们之间有什么联系?下面由我给大家讲解一下具体意义: 帧率:所谓的帧率,就是大家玩游戏的时候常见的fps,fps的意义是每秒钟获取到的图像帧数; Gop:代表多少秒一个I帧,I帧是关键帧; 码率:编码器每秒编出的数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100KB)的数据。 分辨率:指的是1英寸的单位面积里面像素的数量;人们常说的480P(标清),720P(高清),1080P(超清)

2020-07-07 14:37:09 3324

原创 C++指针和引用的区别与联系

C++点睛之笔之指针与引用的区别与联系1.变量当我们定义一个变量的时候,计算机会将指定的一块内存空间和变量名进行绑定;这个定义很简单,但其实很抽象,例如:double x = 10.00; 这是一句最简单的变量赋值语句了, 将5赋值于名字叫做x的内存空间,其本质是将值5赋值到一块内存空间,而这个内存空间名叫做x。变量在内存中的操作其实是需要经过2个步骤的:找出与变量名相对应的内存地址;根据找到的地址,取出该地址对应的内存空间里面的值进行操作。2.指针C++不同于其他语言(Java,PHP)

2020-07-03 10:24:53 285

原创 计算机视觉_OpenCV开源库讲解(多边形逼近)

我们提取目标轮廓之后,可以做很多处理,下面讲解轮廓处理之一:多边形逼近;[1]轮廓逼近简介:轮廓逼近本质是减少编码点;[2]代码展示:for(size_t i = 0; i < contours.size(); i++){ Moments mm = moments(contours[i]); double cx = mm.m10 / mm.m00; double cy =...

2020-02-26 00:56:24 311

原创 计算机视觉_OpenCV开源库讲解(轮廓匹配)

我们得到了轮廓的点集之后,可以进行一系列的数学操作,下面讲解一个常用基于轮廓的匹配方法;[1]几何炬计算比较两个轮廓最简洁的方式是比较他们的轮廓矩.这里先简短介绍一个矩的含义.简单的说,矩是通过对轮廓上所有点进行积分运算而得到的一个粗略特征.通常,我们如下定义一个轮廓的(p,q)矩;在公式中p对应x纬度上的矩,q对应y维度上的矩,q对应y维度上的矩,阶数表示对应的部分的指数...

2020-02-24 22:37:03 412

原创 计算机视觉_OpenCV开源库讲解(图像轮廓计算)

在我们提取了图像轮廓之后可以做很多相关的运算,比如计算目标的面积,周长等,以及轮廓的最大/最小外接矩形;[1]原理简介根据格林公式(第二类曲线积分)求解图像轮廓面积; 此为应用开发,数学原理略。根据L2距离求解图像轮廓周长;[2]API详解double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE...

2020-02-24 01:46:45 437

原创 OpenCV_之sort_box

比如在缺陷检测中,一般情况下会对检测目标进行排序,以边更好的进行操作;下面贴上相关的代码以及效果图:void sort_box(vector<Rect> &boxes){ int size = boxes.size(); for(int t = 0; t < size - 1; t++) { for(int j = i; j < size; j++)...

2020-02-23 19:29:56 210

原创 计算机视觉OpenCV开源库讲解(轮廓发现)

在实际开发项目中,提取目标轮廓是家常便饭的事,提取目标的轮廓可以做很多相关操作,如求面积,求周长等,下面来看看怎样提取目标轮廓吧;API:void findContours( InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode,int method, Point offse...

2020-02-23 18:59:08 551

原创 计算机视觉_OpenCV开源库讲解(色彩空间简介以及相互转换)

一,色彩空间简介1,BGRB:blue;G:Green;R:red;BGR三个通道的取值范围(0~255);在人们的常识中,一般叫BGR为RGB,但是在OpenCV以及Caffe框架中称为BGR,在一般的机器视觉中,很多时候在BGR下面处理图像。2,HSV色调——表示主色:绿色,黄色,红色。用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为1...

2020-02-23 02:55:08 1445

原创 计算机视觉_OpenCV开源库讲解(形态学操作_腐蚀与膨胀)

形态学操作在图像处理中有绝对重要的作用,下面介绍两个常用的形态学操作的函数:(1) 腐蚀: erode(const Mat &src, Mat &dst, Mat kernel, Point anchor=Point(-1,-1), int iterations=1);1.src,是原图;2.dst是输出图像;3.kernel是结构元素,如果kernel = Mat()则为...

2020-02-11 23:48:36 196

原创 音视频流媒体之_FFmpeg(从入门到精通)之第三节(FFmpeg音视频编解码常用API详解——解封装)

本文讲解:FFmpeg解封装的常用的API以及结构体一,解封装注册函数:av_register_all(); //该函数是用来注册解封装函数,用于解封装函数之前avformat_network_init(); //该函数初始化网络模块avformat_open_input(…); // 解析函数avformat_find_stream_info(…); //查找流信息av_find_b...

2020-02-10 01:37:57 252

原创 机器学习从入门到精通(绪论)

1.1引言机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能,在计算机系统中,“经验”通常以“数据”形式存在,因此,机器学习所研究的主要内容,是关于计算机上从数据中产生“模型”的算法,即“学习算法”,有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型,在面对新的情况时,模型会给我们提供相应的判断,如果说计算机科学是研究关于“算法”的学问,那么类似的,可以说机器学习是...

2020-01-26 11:27:21 382

原创 音视频流媒体之_FFmpeg(从入门到精通)之第一节(FFmpeg的基本组成)

FFmpeg框架的基本组成包含AVFormat,AVCodec,AVFilter,AVDevice,AVUtil等模板库:(1)FFmpeg的封装模块AVFormatAVFormat中实现了目前媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4,FLV,KV,TS,等文件封装格式,RTMP,RTSP,MMS,HLS等网络协议封装格式。FFmpeg是否支持某种媒体封装格式,取决于编译时...

2020-01-26 10:45:59 380

原创 音视频流媒体之_FFmpeg(从入门到精通)之第一节(FFmpeg简介)

**众所周知,音视频流媒体技术的开源库中一个很厉害的东西——FFmpeg,他是一款音视频编解码工具,同时也是一组音视频编解码开发软件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编解码,多种协议的流媒体,多种色彩格式转换,多种采样率转换,多种码率转换等,FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件,编码与解码的插...

2020-01-26 10:20:18 308

原创 计算机视觉_OpenCV开源库讲解(边缘提取)

在图形图像中,梯度和边缘是非常相似的性质,在处理图像中,常常提取图像的边缘加以运算,下面介绍一个常用的边缘提取算子:Canny算子Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘。好的定位- 标识出的边缘要与实际图像中的实际边缘尽可能接近。最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。...

2020-01-26 10:07:53 400

原创 深度学习理论

深度学习是机器学习的一个分支

2020-01-17 10:49:17 124

原创 计算机视觉OpenCV开源库讲解(图像噪声与图像去噪)

图形图像中绝大部分图像都带有一些瑕疵,比如噪声,这会给图像处理带来干扰,OpenCV4中有关于其中噪声的处理函数。第一,讲解主要常见的噪声种类:原图:1.椒盐噪声:实现代码:2,高斯噪声:实现代码:第二,讲解图像去噪的实现:中值滤波:实现代码:高斯滤波:实现代码:注:中值滤波适用于椒盐噪声,不适用于高斯噪声,而高斯滤波适用于高斯噪声,不适用于椒盐噪声。...

2020-01-14 05:09:57 661

原创 计算机视觉_OpenCV开源库讲解(图形操作)

本文讲讲解2点:一,图形绘制与填充;二,图像通道合并与分离;一:二:

2020-01-10 23:39:23 196

原创 Qt从入门到精通(引言)

Qt为当今GUI框架中的佼佼者。Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Compan...

2020-01-09 17:55:04 373

原创 计算机视觉_OpenCV开源库讲解(第三节:像素操作)

本文将要讲解:1,图像的位操作;2,像素信息统计。一,图像的位操作:直接上代码:

2020-01-09 17:39:16 138

原创 计算机视觉_OpenCV开源库讲解(第二节:图像的算术操作)

图像的算术操作:1、加:add(src1, src2, dst);2、减:subtract(src1, src2, dst);3、乘:multiply(src1, src2, dst);4、除:divide(src1, src2, dst);#include “opencv2\opencv.hpp”#include using namespace std;using namespa...

2020-01-09 12:09:03 158

原创 计算机视觉_OpenCV开源库讲解(第一节:Mat矩阵)

Mat矩阵详解:Mat类可以被看做是opencv中C++版本的矩阵类,替代原来C版本的矩阵结构体CvMat和图像结构体IplImage;Mat最大的优势跟STL的兼容性很好,有很多类似于STL的操作。但是Mat远远强于后者;Mat是一种高效的数据类型,它对内存进行动态的管理,不需要之前用户手动的管理内存。Mat定义如下:class CV_EXPORTS Mat{public:// ...

2020-01-09 04:35:56 821

原创 计算机视觉_OpenCV开源库详解(引言)

计算机视觉_OpenCV开源库详解(引言)众所周知,计算机视觉在人工智能领域中有重要的作用,而OpenCV在计算机视觉中是南天一柱。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口...

2020-01-09 02:11:43 781

空空如也

空空如也

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

TA关注的人

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