C/C++复习回顾
不再熬夜Zby
整理资料 充实自己中
展开
-
回调函数
搞好了好久想重新复习一遍C/C++ 不知道 怎么复习 干脆就慢慢把一些知识点放到这边就当复习了也是边看别人博客边写什么是回调函数:在我的理解当中只要是把函数作为参数输入的函数就是回调函数。官方:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在...原创 2019-02-17 21:24:51 · 272 阅读 · 0 评论 -
Opencv回顾--直方图统计和直方图均衡化
主要函数直方图计算void calcHist(const Mat* images, int nimages, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate...原创 2019-04-07 22:39:10 · 724 阅读 · 0 评论 -
Opencv回顾--形状绘制
形状绘制主要函数基础点定义一个点Point(int x, int y) Point pt1(20,30);Point pt2;pt2.x = 20;pt2.y = 30;Point pt = Point(10, 8);Point2f:2維浮點數點類別,通常用於幾何計算,用法和Point雷同,只是x和y是浮點數。Point3i、Point3f、Point3d代表3維點x、y...原创 2019-03-27 22:43:11 · 259 阅读 · 0 评论 -
Opencv回顾--图像操作之反转*通道分离*缩放
主要函数翻转图像cv::flip(src, dst, flipCode); src 输入数组。 dst 输出与src大小和类型相同的数组。 flipCode 一个标志,指定如何翻转数组; 0表示绕x轴翻转正值翻转(例如,1)表示绕y轴翻转。负值(例如,-1)表示翻转围绕两个轴。通道分离void cvSplit(const CvArr* src,CvArr *dst0...原创 2019-03-26 22:55:09 · 341 阅读 · 0 评论 -
Opencv回顾--查找表(look up table)
简单的来说就是由于需要对图片的每个值进行操作而遍历又太过于耗时通过对应的表来显示会加快速度和方便操作主要api函数:CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);参数: 输入图像 输出图像 需要改变的模式colormap 枚举对应的类型 COLORMAP_AUTUMN...原创 2019-03-23 19:05:26 · 386 阅读 · 0 评论 -
Opencv回顾--图像的加减与或操作
像素算术操作一:数值运算opencv自带图片色素的处理函数:图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。总之,对于图像可以进行的基本运算非常的多,只是挑了些常用的操作详解。 void add...原创 2019-03-22 23:15:42 · 1265 阅读 · 0 评论 -
Opencv回顾--Mat类赋值像素级操作进行颜色反转
Mat赋值和创建: Mat A = imread("images/test.png"); Mat B=A;赋值 Mat C=A.clone(); 克隆 Mat D; A.copyTo(D);复制 // 创建空白图像 Mat E= Mat::zeros(A.size(), A.type()); 创建矩阵 Mat F = Mat::zeros(Size(512, 512),...原创 2019-03-21 23:55:12 · 1315 阅读 · 0 评论 -
Opencv回顾——环境配置
vs2015+Opencv4.0一、Opencv的下载官方下载:链接:https://sourceforge.net/projects/opencvlibrary/files/4.0.0/opencv-4.0.0-vc14_vc15.exe/download下载完成后直接点击exe执行,进行安装会得到一个opencv文件夹。下载完成了,接下来就进行环境的配置。我安装的是在D:\Open...原创 2019-03-13 15:37:31 · 146 阅读 · 0 评论 -
Opencv回顾--视频操作
主要 函数 类VideoCapture 类 存储视频文件初始化方式:VideoCapture();VideoCapture(const string& filename);VideoCapture(int device);bool VideoCapture::open(const string& filename);bool VideoCapture::open(i...转载 2019-03-20 23:43:24 · 228 阅读 · 0 评论 -
STL库--list
STL中的list就是一双向链表,可高效地进行插入删除元素。1、list构造函数 std::list<int> L0; // 空链表 std::list<int> L1(9); // 建一个含个默认值0是的9元素的链表 //链表内容0.0.0.0.0.0.0.0.0.0 std::list<int> L2(5, 1); // 建一...原创 2019-03-11 23:52:42 · 219 阅读 · 0 评论 -
Opencv回顾--图像的读写+颜色空间转换
OpenCv 读写图片将图像文件读入内存,可以使用 imread()函数。将 Mat 对象以图像文件格式写入内存,可以使用 imwrite() 函数。一、读取图像文件imread()函数返回的是 Mat 对象,如果读取文件失败,则会返回一个空矩阵, 即为 NULL。执行 imread()之后,需要检查文件是否成功读入,防止后续操作对一个空矩阵进行,可以使用 empty() 函数进行检查。im...原创 2019-03-19 23:04:36 · 456 阅读 · 0 评论 -
STL库---vector
定义:1、vector是表示可变大小数组的序列容器。2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3、本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新...原创 2019-03-10 23:38:55 · 187 阅读 · 0 评论 -
多线程的同步处理
线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏。C++ 11支持mutex,通过mutex可以方便的对临界区域加锁,std::mutex类定义于mutex头文件,是用于保护共享数据避免从多个线程同时访问的同步原语。它提供了lock,try_lock,unlock等几个接口,功能如下:<...转载 2019-02-21 00:53:16 · 162 阅读 · 0 评论 -
调用windows API实现多线程
调用windows API实现多线程//最简单的创建多线程实例#include <stdio.h>#include <windows.h>//子线程函数DWORD WINAPI ThreadFun(LPVOID pM){ printf("子线程的线程ID号为:%d\n子线程输出Hello World\n", GetCurrentThreadId()); r...转载 2019-02-20 22:07:00 · 869 阅读 · 0 评论 -
C++ thread 实现多线程
都是看别人博客慢慢记下来的进程和线程进程进程是指在系统中正在运行的一个应用程序;程序一旦运行就是进程线程是进程的一个实体。线程进程——资源分配的最小单位,线程——程序执行的最小单位。区别在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线...原创 2019-02-19 00:12:42 · 554 阅读 · 0 评论 -
Opencv回顾--Roi和掩膜操作
主要函数构建Roi的两种方式1)使用Rect函数,指定矩形的左上角坐标和矩形的长宽来定义一个矩形区域作为ROI区域; Rect rect(cx - 100, cy - 100, 200, 200); //先建立一个矩形 Mat roi = src(rect);2)利用Range来指定感兴趣的行和列的范围,Range是指从初始索引到终止索引的(不包括终止索引)的一段连续序列; Mat ...原创 2019-03-28 22:19:25 · 1002 阅读 · 0 评论