自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录VS2015编译cuda11+opencv库遇到的问题

记录VS2015编译cuda11+opencv库遇到的问题

2022-12-22 17:42:57 1442 1

原创 vs2015+opencv3.2.0+opencv_contrib3.2.0+cmake3.18.0+cuda10.0配置教程

vs2015+opencv3.2.0+opencv_contrib3.2.0+cmake3.18.0+cuda10.0配置教程

2022-11-23 15:07:24 891

原创 C++11并发与多线程笔记(13) 补充知识、线程池浅谈、数量谈、总结

第十三章 补充知识、线程池浅谈、数量谈、总结一、补充一些知识点1.1 虚假唤醒:notify_one或者notify_all唤醒wait()后,实际有些线程可能不满足唤醒的条件,就会造成虚假唤醒,可以在wait中再次进行判断解决虚假唤醒。解决:wait中要有第二个参数(lambda表达式),并且这个lambda表达式中要正确判断所处理的公共数据是否存在,如果存在则返回true,流程走下来,互斥锁本线程拿到;否则返回false,解锁并休眠,卡在wait等待被再次唤醒。2.2 atomic:s

2021-02-17 23:00:34 239

原创 C++11并发与多线程笔记(12) windows临界区、其他各种mutex互斥量

第十二节 windows临界区、其他各种mutex互斥量一和二、windows临界区在“同一个线程中”(不同线程就会卡主等待),windows中的“相同临界区变量”代表的临界区的进入(EnterCriticalSection)可以被多次调用。Windows临界区,“同一个线程‘”是可以重复进入的,但是进入的次数与离开的次数必须相等,而不会引起程序异常报错。C++互斥量mutex则不允许同一个线程重复加锁,会报异常。windows临界区是windows编程中的内容,了解一下即可,效果几乎可以等同

2021-02-17 21:54:18 235

原创 C++11并发与多线程笔记(11) std::atomic续谈、std::async深入谈

第十一节 std::atomic续谈、std::async深入谈一、原子操作std::atomic续谈#include <iostream>#include <thread>#include <atomic>using namespace std;std::atomic<int> g_count = 0; //封装了一个类型为int的 对象(值)void mythread1() { for (int i = 0; i < 100000

2021-02-17 17:59:52 236

原创 C++11并发与多线程笔记(10) future其他成员函数、shared_future、atomic

第十节 future其他成员函数、shared_future、atomic一、std::future 的成员函数1、std::future_status status = result.wait_for(std::chrono::seconds(几秒));卡住当前流程,等待std::async()的异步任务运行一段时间,然后返回其状态std::future_status。如果std::async()的参数是std::launch::deferred(延迟执行),则不会卡住主流程。std::fu

2021-02-17 17:00:00 204

原创 C++11并发与多线程笔记(9) async、future、packaged_task、promise

第九节、async、future、packaged_task、promise本节内容需要包含头文件#include一、std::async、std::future创建后台任务并返回值std::async是一个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,它返回一个std::future对象,这个对象是个类模板。什么叫“启动一个异步任务”?就是自动创建一个线程,并开始 执行对应的线程入口函数,它返回一个std::future对象,这个std::future对象中就含有线程入口函数所返回的

2021-02-17 13:24:07 158 1

原创 C++11并发与多线程笔记(8) condition_variable、wait、notify_one、notify_all

第八节 condition_variable、wait、notify_one、notify_all一、条件变量condition_variable、wait、notify_one、notify_allstd::condition_variable实际上是一个类,是一个和条件相关的类,说白了就是等待一个条件达成。std::mutex mymutex1;std::unique_lock<std::mutex> sbguard1(mymutex1);std::condition_vari

2021-02-12 21:59:52 405

原创 C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once

第七节 单例设计模式共享数据分析、解决,call_once1.设计模式程序灵活,维护起来可能方便,用设计模式理念写出来的代码很晦涩,但是别人接管、阅读代码都会很痛苦用“设计模式”理念写出来的代码是很晦涩的;《head first》老外应付特别大的项目时,把项目的开发经验、模块划分经验,总结整理成设计模式中国零几年设计模式刚开始火时,总喜欢拿一个设计模式往上套,导致一个小小的项目总要加几个设计模式,本末倒置设计模式有其独特的优点,要活学活用,不要深陷其中,生搬硬套这些年设计模式说的少了,没那

2021-02-12 20:05:25 161

原创 C++11并发与多线程笔记(6) unique_lock(类模板)详解

第六节 unique_lock(类模板)详解一.unique_lock取代lock_guardunique_lock是个类模板,工作中一般用lock_guard就足够了(推荐使用);unique_lock也是在构造函数里lock(),在析构函数里unlock(),这点和lockl_guard是一样的unique_lock比lock_guard灵活很多(多出来很多用法),但代价是效率差一点,内存占用多一点二.unique_lock的第二个参数2.1 std::adopt_lock:表示这

2021-02-12 13:39:51 164

原创 C++11并发与多线程笔记(5)互斥量概念、用法、死锁演示及解决详解

第五节 互斥量概念、用法、死锁演示及解决详解一、互斥量(mutex)的基本概念互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功,如果没有锁成功,那么流程将卡在lock()这里不断尝试去锁定。互斥量使用要小心,保护数据不多也不少,少了达不到效果,多了影响效率。二、互斥量的用法包含#include 头文件2.1 lock(),unlock()步骤:1.lock(),2.操作共享数据,3.unlock()。lock()和unlock()

2021-02-12 11:30:55 128

原创 C++11并发与多线程笔记(4) 创建多个线程、数据共享问题分析、案例代码

第四节 创建多个线程、数据共享问题分析、案例代码一、创建和等待多个线程void TextThread(){ cout << "我是线程" << this_thread::get_id() << endl; /* … */ cout << "线程" << this_thread::get_id() << "执行结束" << endl; } //main函数里 vector

2021-02-12 11:17:27 119

原创 C++11并发与多线程笔记(3) 线程传参详解,detach()大坑,成员函数做线程函数

第三节 线程传参详解,detach()大坑,成员函数做线程函数一、传递临时对象作为线程参数1.1要避免的陷阱1:#include <iostream>#include <thread>using namespace std;void myPrint(const int &i, char* pmybuf){ //如果线程从主线程detach了 //i不是mvar真正的引用,实际上值传递,即使主线程运行完毕了,子线程用i仍然是安全的,但仍不推荐传递引用 /

2021-02-12 11:10:32 310

原创 C++11并发与多线程笔记(2) 线程启动、结束,创建线程多法、join,detach

第二节 线程启动、结束,创建线程多法、join,detach一、范例演示线程运行的开始程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】创

2021-02-12 10:52:42 133

原创 C++11并发与多线程笔记(1) 并发基本概念及实现,进程、线程基本概念

一 并发基本概念及实现,进程、线程基本概念一、并发、进程、线程的基本概念和综述并发,线程,进程要求必须掌握1.1 并发两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务;以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒钟进行多次所谓的“任务切换”。并发的假象(不是真正的并发),切换(上下文切换)时要保存变量的状态、执行进度等,存在时间开销;随着硬件发展,出现了多处理器计算机:用于服务器和高性能计算领域。台式机:在一

2021-02-12 10:37:44 153

原创 CUDA中使用__syncthreads()函数出现未定义标识符

在__syncthreads()下出现红色波浪线,网上查的加什么头文件都不好使,这其实不是因为没定义这个函数而是因为VS编辑器不能识别到有这个函数,但只要cuda能识别就行了,所以可以无视这个问题,正常编译运行。...

2020-05-26 22:29:48 4179

原创 Git使用笔记(公司常用)

Git常用指令(一般流程)1. git clone http://xxx 从服务器下载文件2. git status 查看状态:如工程有修改3. git add . 把修改加进来,跟踪这些修改4. git commit –m “xxx” 引号中记录修改5. git pull...

2020-05-26 22:12:49 141

转载 双目视觉+结构光三维重建原理

结构光三维重建原理  结构光三维重建系统是由一个相机和一个投影仪组成,关于结构光三维重建系统的理论有很多,其中有一个简单的模型是把投影仪看做相机来使用,从而得到物体的三维信息。接下来我将详细介绍这个模型的原理。(这是一个相机和一个投影仪的三维重建模型)在把投影仪当相机使用之前,我们得知道如何通过两个相机的信息得到物体的三维信息。  如图所示是一个双目相机系统,如果只有一个相机(以左相机为例),相机上的一个像素点可以对应三维空间中光心与相机成像点连线OLP上的无穷个点,所以仅凭一个相机的信息是无法得到

2020-05-26 22:11:25 7721 2

转载 win10+vs2015+cuda8.0安装配置

一 安装VS2015在「3D视觉工坊」公众号后台回复「VS2015」,即可获得VS2015安装包(包括破解秘钥),以及编程助手(VA助手)。关于VS2015的安装过程,此处不必多说,可自行查看本公众号之前的相关文章。二 安装cuda8.0在「3D视觉工坊」公众号后台回复「cuda8.0」,即可获得cuda_8.0.61_win10的安装包链接。安装包下载完成后,咱们开始进行cuda的安装。默认安装路径,并记住cuda安装程序的路径。之后,按照默认安装即可。三 检测cuda是否安装

2020-05-26 22:08:12 401 1

原创 CUDA学习笔记(四)线程协作

CUDA线程协作教材《GPU高性能编程CUDA实战》第五章 线程协作一、并行线程块的分解1.矢量求和:使用线程实现GPU上的矢量求和//重新回顾矢量求和 : 一个线程块N个线程#include "book.h"#include "cuda_runtime.h"#include "device_launch_parameters.h"//包含blockIdx.x#define N 10__global__ void add( int *a, int *b, int *c ).

2020-05-26 22:06:30 400

原创 CUDA学习笔记(三)CUDA并行编程2

基于GPU的Julia集#include "cuda_runtime.h"#include "device_launch_parameters.h"//包含blockIdx.x#include "book.h"#include"cpu_bitmap.h"#define DIM 1000struct cuComplex { float r; float i; __device__ cuComplex(float a,float b):r(a),i(b){}//前面要加_...

2020-05-26 10:53:23 406

原创 CUDA学习笔记(二)CUDA并行编程1

CUDA并行编程1.基于CPU的矢量求和#include <studio.h>#include <time.h>#include<iostream>using namespace std;#define N 50000void add(int *a, int *b, int *c) { int tid = 0; while (tid < N) {//也可以用for循环 c[tid] = a[tid] + b[tid]; tid +=

2020-05-25 22:18:38 480 1

原创 CUDA学习笔记(一)第一个CUDA程序+查询属性

第一个CUDA程序将CPU以及系统的内存成为主机,将GPU及其内存称为设备,在GPU设备上执行的函数通常称为核函数(kernel)可以将cudaMalloc()分配的指针传递给在设备上执行的函数 可以在设备代码中使用cudaMalloc()分配的指针进行内存读/写操作。 可以将cudaMalloc()分配的指针传递给主机上执行的函数。 不能在主机代码中使用cudaMalloc()分配的指针进行内存读/写操作。 主机指针只能访问主机代码中的内存,设备指针只能访问设备代码中的内存。#incl

2020-05-25 19:10:05 366

原创 格雷码的编解码

格雷码的编解码(以3位为例)编码从二进制码转换到格雷码,从右到左以0~n-1编号,若二进制码字第i位和第i+1位相同,则对应格雷码第i位位0,否则为1(异或),第n位认为是0。十进制二进制码格雷码00000001001001201001130110104100110510111161101017111100格雷码好处:相邻数只有1位变化,最大和最小数首位相连,能避免解码错误。将这23=82^3=82

2020-05-24 17:12:21 3136

转载 二进制的编码(原码、反码、补码)

二进制的编码(原码、反码、补码)1.二进制怎么编码?1字节 = 8位,所以它能表示的最大数当然是8位都是1(既然2进制的数只能是0或1,如果是我们常见的10进制,那就8位都为9)1字节的二进制数中,最大的数:11111111。这个数的大小是多少呢?让我们来把它转换为十进制数。无论是什么进制,都是左边是高位,右边是低位。10进制是我们非常习惯的计数方式,第一位代表有几个1(即几个100),第二位代表有几个10(即几个101),第三位代表有几个100(即有几个102)…,用小学课本上的说法.

2020-05-24 16:35:39 15733

转载 markdown让文字居中和带颜色

markdown让文字居中和带颜色1.说明本文主要叙述如何写出更加优美的markdown文档。在我们观看文档的过程中,良好的格式将会带来很大的收益。对于不同颜色的字体也并不会显得花里胡哨,只会让我们表达的内容更加的清晰。下面来具体的看一下操作的流程。2. 文字的居中对于标准的markdown文本,是不支持居中对齐的。还好markdown支持html语言,所以我们采用html语法格式即可。<center>这一行需要居中</center>3.文字的字体及颜色

2020-05-24 13:40:52 716 1

原创 MarkDown公式LaTeX基本教程和参考资料

https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference

2020-05-24 13:37:47 139

翻译 双目视觉之对极几何

对极几何(Epipolar Geometry) 本文为我翻译了一篇国外的ppt,并在此基础上进行了修改并写了自己的见解。先思考一个问题:用两个相机在不同的位置拍摄同一物体,如果两张照片中的景物有重叠的部分,我们有理由相信,这两张照片之间存在一定的对应关系(模拟人眼)。本节的任务就是如何描述它们之间的对应关系,描述工具是对极几何 ,它是研究立体视觉的...

2020-05-24 13:26:48 1726

转载 win10+vs2015+OpenCV3.1.0配置教程

下载安装Opencv3.1.0下载Opencv3.1.0,进入官网,点击opencv for windows即可下载。点击运行下载好的文件。实际上,opencv的安装程序就是解压缩文件,个人因为只有C盘,所以就直接在C盘建了一个文件夹Opencv3.1.0。选好路径之后点击Extract即可。OpenCV3.1.0环境变量配置选择此电脑(计算机),右键属性-&gt;高级系统设置-&gt;环境...

2020-05-23 21:40:59 247

空空如也

空空如也

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

TA关注的人

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