自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 有关curses屏幕的输出(curses笔记二)

有关curses屏幕的输出  除了printw和refresh两个与屏幕输出密切相关的函数以外,还有一些基本的输出有关的函数:函数描述int addch(const chtype char_to_add)在光标位置添加字符int addchstr(chtype *const string_to_add)在光标位置添加字符串int printw(char *f...

2018-10-03 09:41:08 973

原创 用curses输出HelloWorld(curses笔记一)

用curses输出HelloWorld  Linux/Unix编程往往都是在终端下进行的,但即使是基础文本的编程依然能够尽可能地实现很多图形控制,像vi可以实现在终端中全屏的编辑器就是基于curses的一个具体实现。  curses的名字起源于"cursor optimization",即光标优化。它最早由有美国伯克利大学的Bill Joy和Ken Arnold编写的,用来处理一个游戏rogu...

2018-10-03 08:34:07 4098

原创 线程同步

文章目录线程同步互斥量读写锁线程同步  在没有线程这一概念的系统中,进程同时是可拥有资源和可独立调度及分派的基本单位。当引入线程概念之后,进程仅仅是可拥有资源的基本单位,而线程成为了可独立调度及分派的基本单位。这使得对于同一个进程的多个线程而言,它们将共享着同一地址空间、全局变量、文件等内容,方便了线程之间的通信、合作。但是这也需要让我们注意由于同步造成的一些老问题。互斥量  互斥量可以确...

2018-10-01 20:42:22 190

原创 管道

文章目录管道创建一个管道关闭不必要的管道端口让管道的某一端成为标准输入/输出管道  简单地说,管道可以将一个进程的输出作为另一个进程的输入:在shell中,一般用符号’ | '表示管道,如:gcc --help | wc -l,相当于将gcc的帮助手册作为wc的输入,wc将统计出该手册的行数并作为最后的输出。  实际上可以Linux仍然坚持着一切皆是文件的原则,将管道也视为文件。所以上面...

2018-10-01 00:00:46 227

原创 线程的接口

文章目录线程标识线程创建线程终止线程标识  和每个进程都会有一个起标识作用的进程ID一样,每个线程也都会有一个线程ID。两者间要注意的地方就是,进程ID在整个系统中是唯一的;而由于一个线程只会属于一个进程,因此线程ID在整个系统中不要求唯一,但是在同一个进程中的线程ID必须是唯一的。  进程ID是用pid_t数据类型来表示,而线程ID用pthread_t数据类型来表示,而这两个数据类型实质就...

2018-09-30 17:51:37 503

原创 递归函数与栈

文章目录递归函数与栈一二三三四五六七最后递归函数与栈  为了方便描述,将一个函数f(x)的栈帧以下图的方式进行简化:并用一个求阶乘的函数来解释递归函数与栈的联系:int fun(int N){ if(N == 1) return 1; return N*fun(N-1);}int main(int argc, char **argv){ fun(3); ...

2018-09-29 14:29:40 3484

原创 函数调用与栈

文章目录函数调用与栈内存栈调用函数前调用函数时关于寄存器%ebp栈帧函数调用将要结束时函数调用结束后注函数调用与栈内存栈  在C语言中函数的调用必须借助于栈。  关于栈是什么就不再做笔记了,但需要注意的是,这里的栈与数据结构中的栈虽然原理相同但并不是一个东西。在这里,栈就是一段计算机内存,只不过这段内存满足数据后进先出的规则。  另外还需要注意的是,内存栈是向下增长的,即栈顶在下、栈底在...

2018-09-28 21:21:39 3411 2

原创 文件锁定

文章目录文件锁定创建锁文件锁文件与共享文件的关系文件锁定  两个进程之间需要共享数据时可以通过文件来实现,即将共享的数据放于某一文件之中,而进程则分别读写这个文件(该文件被称为 共享文件 )。但是使用文件来共享数据的同时也必须要对文件加以控制,或者说制定一套让进程们合理访问文件的规则,即文件锁定。  例如,当某一个写进程正在操作文件时,给文件加一把"锁",使得读进程尝试访问该文件时需要先等待...

2018-09-28 13:30:51 507

原创 函数dup

文章目录函数dup/dup2函数dup/dup2  函数dup和函数dup2都用于复制一个文件描述符,其原型如下:#include <unistd.h>int dup(int fd);int dup2(int fd1, int fd2);两个函数在调用成功时都会返回一个新的描述符,若出错则会返回-1。  对于函数dup而言,dup会返回一个当前可用描述符中最小的一个...

2018-09-27 23:20:04 2041

原创 内核用于I/O的数据结构

文章目录内核用于I/O的数据结构文件描述表文件表项v节点表项内核用于I/O的数据结构  一个进程除了指令、数据之外还会有一些信息用于记录进程的状态(这是程序所没有的)。在这些记录中就有一个表称之为文件描述表,而文件描述符就是这张文件描述表的索引。  下面是一张文件描述符表的示意图,除了文件描述符表之外还画出了其它与之相关的信息:文件描述表  文件描述表是进程记录表项中的一部分,文件描述...

2018-09-27 22:50:51 291

原创 system函数与exec函数

文章目录system函数与exec函数system函数exec系列函数system函数与exec函数启动另一个新的进程system函数  >> system函数的原型:#include <stdlib.h>int system(const char *string);  >> system函数的作用:  运行一条命令并等待该命令的完成,该...

2018-09-25 20:52:13 2218

原创 更多的文件I/O系统调用

文章目录文件I/O系统调用lseek系统调用fstat系统调用stat和lstat系统调用dup和dup2系统调用文件I/O系统调用  除了open、close、write、read这四个基本的低级文件I/O以外,其它的低级文件I/O如下:lseekfstatstatlstatduplseek系统调用  lseek用于设置将要读写文件的位置。相当于有一个指针,当指针指向文件内...

2018-09-25 16:49:58 161

原创 文件I/O的基本系统调用

文章目录文件I/O文件描述符open 和 openat文件I/O  有关文件I/O的Linux系统调用主要有5个函数:openreadwritelseekclose文件描述符  文件描述符是一个非负整数。当一个进程打开( open )一个文件时,系统就会返回给进程一个文件描述符,而该进程就可以通过这个文件描述符来对打开的文件进行读/写( read / write )。  很...

2018-09-24 22:36:55 332

原创 ELF格式大致描述

ELF格式ELF文件类型  ELF是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件的文件格式。是Linux上二进制文件的标准格式。  ELF有四种类型:重定位文件( ET_REL ),也就是常称的目标文件可执行文件( ET_EXEC )共享目标文件( ET_DYN ),即共享对象文件、动态库文件核心转储文件( ET_CORE )除此之外还会有类型不确定的EL...

2018-09-24 15:07:24 421

原创 程序参数

文章目录程序参数简单的带参数示例getopt函数>> 关于getopt的参数>> 关于getopt的返回值及一些行为>> getopt函数的简单示例getopt_long函数>> getopt_long的简单示例>> struct option结构>> 运行结果注程序参数  许多命令行运行的C程序都会有可选(或必须要有)的...

2018-09-22 21:04:24 1468

原创 编程的基本概念(C++)

编程的流程编程的流程主要分为 编辑->编译->链接 三个步骤每个步骤都会生成相应的文件,其过程如图1所示。   图1   编辑编辑是编程的第一步,即编辑代码,而用来编辑的工具就是编辑器。大部分电脑自带的记事本就是一个编辑器,但是记事本没有自动缩进、语法高亮等帮助编辑代码的功能,所以一般不会用记事本来编辑代码。像Visual Studio就会自带编...

2018-07-22 10:51:51 490

原创 结构的定义与使用

什么是结构我们把相同元素的集合称为数组,类似地,将任意类型元素的集合称为结构(struct)。例如:struct people{ const char* name; int age; const char* sex; int id;};struct是一种class,但是它的成员是默认为public的。它也可以包含成员函数(包括构造函数)。结构的定义结构的定义是定义了一种数据类型(如int,上面的例...

2018-05-15 10:09:48 1729

原创 const类型限定符

const限定符const关键字用于限定一个变量为只读,即其值不能通过赋值、递增、递减等操作来修改。(但允许初始化)如:----------------------------------------const int X;X = 0;//编译器报错,该操作不被允许-----------------------------------------const int X = 0;//初始化操作被允许...

2018-05-14 18:26:17 369

原创 字符的输入和输出——getchar()和putchar()

I/O是什么??I/O就是input和output的缩写,即输入和输出。像鼠标、键盘、显示器与主机连接的接口称为I/O接口,这些都是与主机进行信息输入或输出的设备;头文件stdio.h,其名称的意义为“standard input & output(标准输入和输出)”;而printf()、scanf()、getchar()、putchar()等等都属于I/O函数,这些函数都用于做信息的交换...

2018-05-13 20:26:19 19818

原创 插入排序法 C++实现

//插入排序法比较简单,就只贴上代码和运行结果//升序排列和降序排列都写了一遍,基本是一样【代码】#include <iostream>using namespace std;int main(){ int n, *a; cout << "请输入乱序数字的个数:"; cin >> n;//-----------------------------...

2018-05-11 00:39:28 324

原创 动态链接与静态链接

库文件库文件可以提供直接拿来用的函数、变量等,它可以分为两种1)第一种库文件(*.lib)可以看作是多个目标文件(.obj)的集合,而obj文件和lib文件链接依然是多个目标文件的链接。2)另一种库文件不是 *.lib,但和 *.lib 有关。这时lib不是多个obj的集合,它只提供动态链接到库文件所需要的信息,库文件的格式为 *.dll 。上诉的第一种库文件(*.lib)称为静态链接库,第二种库...

2018-04-17 15:31:26 166

原创 图像卷积(OpenCV笔记)

图像卷积的过程===>https://blog.csdn.net/qq_36503007/article/details/79875033filter2D()函数filter2D()是OpenCV中用于图像做卷积运算的函数声明:void cv::filter2D( InputArray src, OutputArray dst, int ddepth,                    ...

2018-04-11 23:30:01 696

原创 像素值的读写 OpenCV的at()函数

图像处理中很多时候会对像素点进行操作。在OpenCV有许多方法来对像素进行遍历,这篇是对at()函数做的笔记。at()函数对于单通道图像"picture1",picture1.at<uchar>(i,j)就表示在第i行第j列的像素值。对于多通道图像如RGB图像"picture2",可以用picture2.at<Vec3b>(i,j)[c]来表示某个通道中在(i,j)位置的像...

2018-04-11 15:08:15 8723

原创 图像的旋转变换

以上图矩形旋转θ度的过程为例,(x,y)是原坐标,而(x',y')是其变化后所对应的坐标。由几何知识和三角函数相关定理就可以求出上诉过程的数学表达式:再写成矩阵形式:其中就是旋转矩阵T与图像的缩放一样,经过上诉变化后,输出图像许多位置的灰度也无法确定,为此我们还要进行插值法处理...

2018-04-10 17:09:24 421

原创 图像卷积

什么是卷积?卷积是一种运算,两个函数通过卷积运算可以生成第三个函数。具体的运算公式可以分为两种,一种是两个函数x(t)和h(t)做卷积: ,另一种是两个序列x(n)和h(n)做卷积:上面只是公式,对于卷积的理解网上有很多通俗的解释,这里链接一个知乎上的解释:     如何通俗易懂地解释卷积?图像处理中的卷积1、对图像进行卷积数字图像是一个二维的序列,将另一个人为设定的二维序列作为卷积核(或称为“卷...

2018-04-10 15:04:59 3448

原创 图像的缩放

图像缩放中坐标的空间变换以图像放大为例,对数字图像f(x,y)放大一倍,其数学表达式为x'=2x,y'=2y(其中,(x',y')表示(x,y)变化后所对应的坐标),如图1所示。图1现在将图像缩放写成一般的数学表达式:再写成矩阵形式:其中就是缩放矩阵,这里用矩阵 T 来表示我们可以通过矩阵T来进行对图像的缩放,但由图1中坐标的空间变化中,很容易看出问题:图像放大一倍后出现了许多“空洞”(图中白色格...

2018-04-10 13:48:26 1722

原创 数字图像入门(学习)

数字图像的表示我们用f(x,y)的二维函数来表示图像。在空间坐标(x,y)处,其值f(x,y)被称为幅度即亮度(f是一个正的标量)。1、图像的取样和量化(数字化)对一幅连续图像f(s,t)的坐标值进行数字化称为取样,对幅度值数字化称为量化。令f(s,t)表示一副连续图像,而f(x,y)表示一副数字图像,通过取样和量化我们可以把连续图像转为数字图像。(左边为连续图像,右边为取样后的数字图像)2、像素...

2018-04-10 00:06:42 979

原创 VS+OpenCV3环境配置

本机环境:                              win7 64位版本:                                    ①OpenCV3.2.0       ②Visual Studio 2017OpenCV库的安装路径:           D:\opencv  步骤第一步:配置Path变量第二步:在Visual Studio2017中配置OpenCV...

2018-04-06 15:56:37 275

空空如也

空空如也

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

TA关注的人

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