精华内容
下载资源
问答
  • 常用库函数的名称
    千次阅读
    2020-04-18 21:35:49

    关于库函数

    函数库

    函数库是由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。

    库函数

    存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。
    连接程序:将编译程序生成的目标文件连接在一起生成一个可执行文件。

    头文件

    有时也称为包含文件。C++库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件。

    更多内容见 这里

    C++ 常用库函数

    cmath

    名称功能
    abs(n)求整数n的绝对值
    fabs(n)求实数n的绝对值
    sqrt(n)求n的开方值
    pow(n)求n的平方值
    ceil(n)将n向上取整
    floor(n)将n向下取整

    iomanip

    名称功能
    setw(n)设置字符串宽度为n位
    setprecision(n)设置浮点数的有效数字为n位

    cstdlib

    名称功能
    rand()*(b-a)+a随机生成a与b之间的随机数

    cstring

    名称功能
    memset (a,0,sizeof(a)) ;将数组a清零

    bitset

    名称功能
    std::bitset将n转为二进制数
    std::oct将n转为八进制数
    std::dec将n转为十进制数
    std::hex将n转为十六进制数

    实例

    #include<iostream>
    #include<bitset>
    using namespace std;
    int main()
    {
    	int n;
    	cin>>n;
    	cout<<std::bitset<8>(n)<<" ";//将n转为二进制数,并设定为8位
    	cout<<std::oct<<n<<" ";//将n转为八进制数并输出
    	cout<<std::dec<<n<<" ";//将n转为十进制数并输出
    	cout<<std::hex<<n;//将n转为十六进制数并输出
    	return 0;
    }
    

    输入:34
    输出:00100010 42 34 22

    总列表

    名称功能头文件
    abs(n)求整数n的绝对值cmath
    fabs(n)求实数n的绝对值cmath
    sqrt(n)求n的开方值cmath
    pow(n)求n的平方值cmath
    ceil(n)将n向上取整cmath
    floor(n)将n向下取整cmath
    setw(n)设置字符串宽度为n位iomanip
    setprecision(n)设置浮点数的有效数字为n位iomanip
    rand()*(b-a)+a随机生成a与b之间的随机数cstdlib
    memset (a,0,sizeof(a)) ;将数组a清零cstring
    std::bitset将n转为二进制数bitset
    std::oct将n转为八进制数bitset
    std::dec将n转为十进制数bitset
    std::hex将n转为十六进制数bitset

    本文将持续更新

    更多相关内容
  • C语言常用库函数

    2020-03-01 15:23:41
    整理了一些比较多用到的,不是所有的库函数,不定期更新~ 一、math.h 函数原型说明 功能 int abs(int x) 求整数x的绝对值 double fabs(double x) 求双...

    整理了一些比较多用到的,不是所有的库函数,不定期更新~

    一、math.h

    函数原型说明

    功能

    int abs(int x)

    求整数x的绝对值

    double fabs(double x)

    求双精度实数x的绝对值

    double acos(double x)

    计算arccos(x)的值

    double asin(double x)

    计算arcsin(x)的值

    double atan(double x)

    计算arctan(x)的值,返回值[ -pi/2, pi/2 ]

    double atan2(double y,double x)

    计算arctan(x/y)的值,atan() 的增强版,能确定象限

    double sin(double x)

    计算sin(x)的值

    double cos(double x)

    计算cos(x)的值

    double tan(double x)

    计算tan(x)

    double exp(double x)

    求e^x的值

    double pow(double x,double y)

    计算x^y的值

    double sqrt(double x)

    计算x的开方

    double ceil(double x)往上取整

    double floor(double x)

    往下取整

    double round(double x)四舍五入取整

    double log(double x) 

    求㏑(x)

     double log10(double x)

    求log10(x)

     

    二、stdlib.h

    double atof(char *str)把参数 str 所指向的字符串转换为一个浮点数
    int atoi(char *str)把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
    long int atol(char *str) 把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
    void *calloc(unsigned nitems, unsigned size) 分配所需的内存空间,并返回一个指向它的指针。如果请求失败,则返回 NULL。
    void *malloc(unsigned size) 分配所需的内存空间,并返回一个指向它的指针。如果请求失败,则返回 NULL。
    void *realloc(void *ptr, unsigned size)尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。该函数返回一个指针 ,指向重新分配大小的内存。如果请求失败,则返回 NULL。
     void free(void *ptr)释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。如果传递的参数是一个空指针,则不会执行任何动作。
    void abort(void) 中止程序执行,直接从调用的地方跳出。
    void exit(int status)程序终止执行,返回调用过程,state为0正常终止,非0非正常终止
     int system(char *command)把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。eg: system("pause");
    void *bsearch(void *key, void *base, unsigned nitems, unsigned size, int (*compar)(const void *, const void *)) 

    对 nitems 对象的数组执行二分查找,base 指向进行查找的数组,key 指向要查找的元素,size 指定数组中每个元素的大小。

    数组的内容应根据 compar 所对应的比较函数升序排序。

    void qsort(void *base, unsigned nitems, unsigned size, int (*compar)(const void *, const void*))对数组进行排序。
    int rand(void)

    返回一个范围在 0 到 RAND_MAX 之间的伪随机数。

    RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767。

     

    三、ctype.h

    int isalnum(char c)该函数检查所传的字符是否是字母和数字。
    int isalpha(char c)该函数检查所传的字符是否是字母。
    int isdigit(char c)该函数检查所传的字符是否是十进制数字。

    int islower(char c)

    该函数检查所传的字符是否是小写字母。
    int isupper(char c)该函数检查所传的字符是否是大写字母。
    int isxdigit(char c)该函数检查所传的字符是否是十六进制数字。

    int tolower(char c)

    该函数把大写字母转换为小写字母。
    int toupper(char c)该函数把小写字母转换为大写字母。

     

    四、stdio.h

    FILE *fopen(char *filename, char *mode)

    使用给定的模式 mode 打开 filename 所指向的文件。

     

    "r":打开一个用于读取的文件。该文件必须存在。

    "w":创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。

    "a":追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文件。

    "r+":打开一个用于更新的文件,可读取也可写入。该文件必须存在。

    "w+":创建一个用于读写的空文件。

    "a+":打开一个用于读取和追加的文件

    int fclose(FILE *stream)关闭流 stream。刷新所有的缓冲区。如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。
    int remove(const char *filename)删除给定的文件名 filename,以便它不再被访问。
    int rename(char *old_filename, char *new_filename)把 old_filename 所指向的文件名改为 new_filename。
    unsigned fread(void *ptr, unsigned size, unsigned nmemb, FILE *stream)

    从给定流 stream 读取数据到 ptr 所指向的数组中。

     

    ptr -- 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。

    size -- 这是要读取的每个元素的大小,以字节为单位。

    nmemb -- 这是元素的个数,每个元素的大小为 size 字节。

    stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

    unsigned fwrite(void *ptr, unsigned size, unsigned nmemb, FILE *stream)把 ptr 所指向的数组中的数据写入到给定流 stream 中。
    int fseek(FILE *stream, long int offset, int whence)

    设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。如果成功,则该函数返回零,否则返回非零值。

     

    SEEK_SET:文件的开头

    SEEK_CUR:文件指针当前的位置

    SEEK_END:文件的末尾

    long int ftell(FILE *stream)返回给定流 stream 的当前文件位置。该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。
    int feof(FILE *stream)测试给定流 stream 的文件结束标识符。当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。
    void rewind(FILE *stream)设置文件位置为给定流 stream 的文件的开头。
    int fflush(FILE *stream)刷新流 stream 的输出缓冲区。如果成功,该函数返回零值。如果发生错误,则返回 EOF,且设置错误标识符(即 feof)。
    int ferror(FILE *stream)测试给定流 stream 的错误标识符(我理解的是判断是否有错误)。如果设置了与流关联的错误标识符,该函数返回一个非零值,否则返回一个零值。
    void clearerr(FILE *stream)清除给定流 stream 的文件结束和错误标识符。这不会失败,且不会设置外部变量 errno,但是如果它检测到它的参数不是一个有效的流,则返回 -1,并设置 errno 为 EBADF。
    int fprintf(FILE *stream, char *format, ...)发送格式化输出到流 stream 中。
    int printf(char *format, ...)发送格式化输出到标准输出 stdout。
    int sprintf(char *str, char *format, ...)发送格式化输出到字符串。
    int fscanf(FILE *stream, char *format, ...)从流 stream 读取格式化输入。
    int scanf(char *format, ...)从标准输入 stdin 读取格式化输入。
    char fgetc(FILE *stream)从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
    char *fgets(char *str, int n, FILE *stream)从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

    如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。

    int fputc(char c, FILE *stream)把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
    int fputs(char *str, FILE *stream)把字符串写入到指定的流 stream 中,但不包括空字符。
    int getc(FILE *stream)从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
    int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。
    char *gets(char *str)从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
    int putc(char c, FILE *stream)把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
    int putchar(char c)把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
    int puts(char *str)把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。

     

    五、string.h

    char *strcat(char *dest, char *src)把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
    int strcmp(char *str1, char *str2)把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
    char *strcpy(char *dest, const char *src)把 src 所指向的字符串复制到 dest
    unsigned strlen(char *str)计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
    char *strrchr(const char *str, int c)在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
    char *strtok(char *str, const char *delim)

    分解字符串 str 为一组字符串,delim 为分隔符。

    https://bbs.csdn.net/topics/40226502 #7 的解释很棒

    char *strstr(char *haystack, char *needle)在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。

     

    六、time.h

    struct tm {
       int tm_sec;         /* 秒,范围从 0 到 59        */
       int tm_min;         /* 分,范围从 0 到 59        */
       int tm_hour;        /* 小时,范围从 0 到 23        */
       int tm_mday;        /* 一月中的第几天,范围从 1 到 31    */
       int tm_mon;         /* 月,范围从 0 到 11        */
       int tm_year;        /* 自 1900 年起的年数        */
       int tm_wday;        /* 一周中的第几天,范围从 0 到 6    */
       int tm_yday;        /* 一年中的第几天,范围从 0 到 365    */
       int tm_isdst;       /* 夏令时                */
    };
    clock_t clock(void)该函数返回自程序启动起,处理器时钟所使用的时间。如果失败,则返回 -1 值。(其中,clock_t 是一个适合存储处理器时间的类型。)感觉有点像long
    time_t time(time_t *timer)计算当前日历时间,并把它编码成 time_t 格式。(其中,time_t 适合存储日历时间类型。)。返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以为单位。
    double difftime(time_t time1, time_t time2)返回 time1 和 time2 之间相差的秒数 (time1-time2)。
    char *ctime(const time_t *timer)

    返回一个表示当地时间的字符串,当地时间是基于参数 timer

    返回的字符串格式如下: Www Mmm dd hh:mm:ss yyyy 其中,Www 表示星期几,Mmm 是以字母表示的月份,dd 表示一月中的第几天,hh:mm:ss 表示时间,yyyy 表示年份。

    struct tm *localtime(const time_t *timer)timer 的值被分解为 tm 结构,并用本地时区表示。

     

    参考:

    https://blog.csdn.net/zjy900507/article/details/88316583

    https://baike.baidu.com/item/math.h/10991856?fr=aladdin

    https://www.runoob.com/cprogramming/c-standard-library-stdlib-h.html

     

    展开全文
  • OpenCV常用库函数

    2022-03-17 00:03:30
    138、cvConvertImage:用于在常用的不同图像格式之间转换; 139、cvErode:形态腐蚀; 140、cvDilate:形态学膨胀; 141、cvMorphologyEx:更通用的形态学函数; 142、cvFloodFill:漫水填充算法,用来进一步控制...

    1、cvNamedWindow:在屏幕上创建一个窗口;

    2、cvLoadImage:将图像文件加载至内存;

    3、cvShowImage:在一个已创建好的窗口中显示图像;

    4、cvWaitKey:使程序暂停,等待用户触发一个按键操作;

    5、cvReleaseImage:释放图像文件所分配的内存;

    6、cvDestroyWindow:销毁显示图像文件的窗口;

    7、cvCreateFileCapture:通过参数设置确定要读入的AVI文件;

    8、cvQueryFrame:用来将下一帧视频文件载入内存;

    9、cvReleaseCapture:释放CvCapture结构开辟的内存空间;

    10、cvCreateTrackbar:创建一个滚动条;

    11、cvSetCaptureProperty:设置CvCapture对象的各种属性;

    12、cvGetCaptureProperty:查询CvCapture对象的各种属性;

    13、cvGetSize:当前图像结构的大小;

    14、cvSmooth:对图像进行平滑处理;

    15、cvPyrDown:图像金字塔,降采样,图像缩小为原来四分之一;

    16、cvCanny:Canny边缘检测;

    17、cvCreateCameraCapture:从摄像设备中读入数据;

    18、cvCreateVideoWriter:创建一个写入设备以便逐帧将视频流写入视频文件;

    19、cvWriteFrame:逐帧将视频流写入文件;

    20、cvReleaseVideoWriter:释放CvVideoWriter结构开辟的内存空间;

    21、CV_MAT_ELEM:从矩阵中得到一个元素;

    22、cvAbs:计算数组中所有元素的绝对值;

    23、cvAbsDiff:计算两个数组差值的绝对值;

    24、cvAbsDiffS:计算数组和标量差值的绝对值;

    25、cvAdd:两个数组的元素级的加运算;

    26、cvAddS:一个数组和一个标量的元素级的相加运算;

    27、cvAddWeighted:两个数组的元素级的加权相加运算(alpha运算);

    28、cvAvg:计算数组中所有元素的平均值;

    29、cvAvgSdv:计算数组中所有元素的绝对值和标准差;

    30、cvCalcCovarMatrix:计算一组n维空间向量的协方差;

    31、cvCmp:对两个数组中的所有元素运用设置的比较操作;

    32、cvCmpS:对数组和标量运用设置的比较操作;

    33、cvConvertScale:用可选的缩放值转换数组元素类型;

    34、cvCopy:把数组中的值复制到另一个数组中;

    35、cvCountNonZero:计算数组中非0值的个数;

    36、cvCrossProduct:计算两个三维向量的向量积(叉积);

    37、cvCvtColor:将数组的通道从一个颜色空间转换另外一个颜色空间;

    38、cvDet:计算方阵的行列式;

    39、cvDiv:用另外一个数组对一个数组进行元素级的除法运算;

    40、cvDotProduct:计算两个向量的点积;

    41、cvEigenVV:计算方阵的特征值和特征向量;

    42、cvFlip:围绕选定轴翻转;

    43、cvGEMM:矩阵乘法;

    44、cvGetCol:从一个数组的列中复制元素;

    45、cvGetCols:从数据的相邻的多列中复制元素;

    46、cvGetDiag:复制数组中对角线上的所有元素;

    47、cvGetDims:返回数组的维数;

    48、cvGetDimSize:返回一个数组的所有维的大小;

    49、cvGetRow:从一个数组的行中复制元素值;

    50、cvGetRows:从一个数组的多个相邻的行中复制元素值;

    51、cvGetSize:得到二维的数组的尺寸,以CvSize返回;

    52、cvGetSubRect:从一个数组的子区域复制元素值;

    53、cvInRange:检查一个数组的元素是否在另外两个数组中的值的范围内;

    54、cvInRangeS:检查一个数组的元素的值是否在另外两个标量的范围内;

    55、cvInvert:求矩阵的逆;

    56、cvMahalonobis:计算两个向量间的马氏距离;

    57、cvMax:在两个数组中进行元素级的取最大值操作;

    58、cvMaxS:在一个数组和一个标量中进行元素级的取最大值操作;

    59、cvMerge:把几个单通道图像合并为一个多通道图像;

    60、cvMin:在两个数组中进行元素级的取最小值操作;

    61、cvMinS:在一个数组和一个标量中进行元素级的取最小值操作;

    62、cvMinMaxLoc:寻找数组中的最大最小值;

    63、cvMul:计算两个数组的元素级的乘积(点乘);

    64、cvNot:按位对数组中的每一个元素求反;

    65、cvNormalize:将数组中元素进行归一化;

    66、cvOr:对两个数组进行按位或操作;

    67、cvOrs:在数组与标量之间进行按位或操作;

    68、cvReduce:通过给定的操作符将二维数组简为向量;

    69、cvRepeat:以平铺的方式进行数组复制;

    70、cvSet:用给定值初始化数组;

    71、cvSetZero:将数组中所有元素初始化为0;

    72、cvSetIdentity:将数组中对角线上的元素设为1,其他置0;

    73、cvSolve:求出线性方程组的解;

    74、cvSplit:将多通道数组分割成多个单通道数组;

    75、cvSub:两个数组元素级的相减;

    76、cvSubS:元素级的从数组中减去标量;

    77、cvSubRS:元素级的从标量中减去数组;

    78、cvSum:对数组中的所有元素求和;

    79、cvSVD:二维矩阵的奇异值分解;

    80、cvSVBkSb:奇异值回代计算;

    81、cvTrace:计算矩阵迹;

    82、cvTranspose:矩阵的转置运算;

    83、cvXor:对两个数组进行按位异或操作;

    84、cvXorS:在数组和标量之间进行按位异或操作;

    85、cvZero:将所有数组中的元素置为0;

    86、cvConvertScaleAbs:计算可选的缩放值的绝对值之后再转换数组元素的类型;

    87、cvNorm:计算数组的绝对范数, 绝对差分范数或者相对差分范数;

    88、cvAnd:对两个数组进行按位与操作;

    89、cvAndS:在数组和标量之间进行按位与操作;

    90、cvScale:是cvConvertScale的一个宏,可以用来重新调整数组的内容,并且可以将参数从一种数据类型转换为另一种;

    91、cvT:是函数cvTranspose的缩写;

    92、cvLine:画直线;

    93、cvRectangle:画矩形;

    94、cvCircle:画圆;

    95、cvEllipse:画椭圆;

    96、cvEllipseBox:使用外接矩形描述椭圆;

    97、cvFillPoly、cvFillConvexPoly、cvPolyLine:画多边形;

    98、cvPutText:在图像上输出一些文本;

    99、cvInitFont:采用一组参数配置一些用于屏幕输出的基本个特定字体;

    100、cvSave:矩阵保存;

    101、cvLoad:矩阵读取;

    102、cvOpenFileStorage:为读/写打开存储文件;

    103、cvReleaseFileStorage:释放存储的数据;

    104、cvStartWriteStruct:开始写入新的数据结构;

    105、cvEndWriteStruct:结束写入数据结构;

    106、cvWriteInt:写入整数型;

    107、cvWriteReal:写入浮点型;

    108、cvWriteString:写入字符型;

    109、cvWriteComment:写一个XML或YAML的注释字串;

    110、cvWrite:写一个对象;

    111、cvWriteRawData:写入多个数值;

    112、cvWriteFileNode:将文件节点写入另一个文件存储器;

    113、cvGetRootFileNode:获取存储器最顶层的节点;

    114、cvGetFileNodeByName:在映图或存储器中找到相应节点;

    115、cvGetHashedKey:为名称返回一个惟一的指针;

    116、cvGetFileNode:在映图或文件存储器中找到节点;

    117、cvGetFileNodeName:返回文件的节点名;

    118、cvReadInt:读取一个无名称的整数型;

    119、cvReadIntByName:读取一个有名称的整数型;

    120、cvReadReal:读取一个无名称的浮点型;

    121、cvReadRealByName:读取一个有名称的浮点型;

    122、cvReadString:从文件节点中寻找字符串;

    123、cvReadStringByName:找到一个有名称的文件节点并返回它;

    124、cvRead:将对象解码并返回它的指针;

    125、cvReadByName:找到对象并解码;

    126、cvReadRawData:读取多个数值;

    127、cvStartReadRawData:初始化文件节点序列的读取;

    128、cvReadRawDataSlice:读取文件节点的内容;

    129、cvGetModuleInfo:检查IPP库是否已经正常安装并且检验运行是否正常;

    130、cvResizeWindow:用来调整窗口的大小;

    131、cvSaveImage:保存图像;

    132、cvMoveWindow:将窗口移动到其左上角为x,y的位置;

    133、cvDestroyAllWindow:用来关闭所有窗口并释放窗口相关的内存空间;

    134、cvGetTrackbarPos:读取滑动条的值;

    135、cvSetTrackbarPos:设置滑动条的值;

    136、cvGrabFrame:用于快速将视频帧读入内存;

    137、cvRetrieveFrame:对读入帧做所有必须的处理;

    138、cvConvertImage:用于在常用的不同图像格式之间转换;

    139、cvErode:形态腐蚀;

    140、cvDilate:形态学膨胀;

    141、cvMorphologyEx:更通用的形态学函数;

    142、cvFloodFill:漫水填充算法,用来进一步控制哪些区域将被填充颜色;

    143、cvResize:放大或缩小图像;

    144、cvPyrUp:图像金字塔,将现有的图像在每个维度上都放大两倍;

    145、cvPyrSegmentation:利用金字塔实现图像分割;

    146、cvThreshold:图像阈值化;

    147、cvAcc:可以将8位整数类型图像累加为浮点图像;

    148、cvAdaptiveThreshold:图像自适应阈值;

    149、cvFilter2D:图像卷积;

    150、cvCopyMakeBorder:将特定的图像轻微变大,然后以各种方式自动填充图像边界;

    151、cvSobel:图像边缘检测,Sobel算子;

    152、cvLaplace:拉普拉斯变换、图像边缘检测;

    153、cvHoughLines2:霍夫直线变换;

    154、cvHoughCircles:霍夫圆变换;

    155、cvRemap:图像重映射,校正标定图像,图像插值;

    156、cvWarpAffine:稠密仿射变换;

    157、cvGetQuadrangleSubPix:仿射变换;

    158、cvGetAffineTransform:仿射映射矩阵的计算;

    159、cvCloneImage:将整个IplImage结构复制到新的IplImage中;

    160、cv2DRotationMatrix:仿射映射矩阵的计算;

    161、cvTransform:稀疏仿射变换;

    162、cvWarpPerspective:密集透视变换(单应性);

    163、cvGetPerspectiveTransform:计算透视映射矩阵;

    164、cvPerspectiveTransform:稀疏透视变换;

    165、cvCartToPolar:将数值从笛卡尔空间到极坐标(极性空间)进行映射;

    166、cvPolarToCart:将数值从极性空间到笛卡尔空间进行映射;

    167、cvLogPolar:对数极坐标变换;

    168、cvDFT:离散傅里叶变换;

    169、cvMulSpectrums:频谱乘法;

    170、cvDCT:离散余弦变换;

    171、cvIntegral:计算积分图像;

    172、cvDistTransform:图像的距离变换;

    173、cvEqualizeHist:直方图均衡化;

    174、cvCreateHist:创建一新直方图;

    175、cvMakeHistHeaderForArray:根据已给出的数据创建直方图;

    176、cvNormalizeHist:归一化直方图;

    177、cvThreshHist:直方图阈值函数;

    178、cvCalcHist:从图像中自动计算直方图;

    179、cvCompareHist:用于对比两个直方图的相似度;

    180、cvCalcEMD2:陆地移动距离(EMD)算法;

    181、cvCalcBackProject:反向投影;

    182、cvCalcBackProjectPatch:图块的方向投影;

    183、cvMatchTemplate:模板匹配;

    184、cvCreateMemStorage:用于创建一个内存存储器;

    185、cvCreateSeq:创建序列;

    186、cvSeqInvert:将序列进行逆序操作;

    187、cvCvtSeqToArray:复制序列的全部或部分到一个连续内存数组中;

    188、cvFindContours:从二值图像中寻找轮廓;

    189、cvDrawContours:绘制轮廓;

    190、cvApproxPoly:使用多边形逼近一个轮廓;

    191、cvContourPerimeter:轮廓长度;

    192、cvContoursMoments:计算轮廓矩;

    193、cvMoments:计算Hu不变矩;

    194、cvMatchShapes:使用矩进行匹配;

    195、cvInitLineIterator:对任意直线上的像素进行采样;

    196、cvSampleLine:对直线采样;

    197、cvAbsDiff:帧差;

    198、cvWatershed:分水岭算法;

    199、cvInpaint:修补图像;

    200、cvGoodFeaturesToTrack:寻找角点;

    201、cvFindCornerSubPix:用于发现亚像素精度的角点位置;

    202、cvCalcOpticalFlowLK:实现非金字塔的Lucas-Kanade稠密光流算法;

    203、cvMeanShift:mean-shift跟踪算法;

    204、cvCamShift:camshift跟踪算法;

    205、cvCreateKalman:创建Kalman滤波器;

    206、cvCreateConDensation:创建condensation滤波器;

    207、cvConvertPointsHomogenious:对齐次坐标进行转换;

    208、cvFindChessboardCorners:定位棋盘角点;

    209、cvFindHomography:计算单应性矩阵;

    210、cvRodrigues2:罗德里格斯变换;

    211、cvFitLine:直线拟合算法;

    212、cvCalcCovarMatrix:计算协方差矩阵;

    213、cvInvert:计算协方差矩阵的逆矩阵;

    214、cvMahalanobis:计算Mahalanobis距离;

    215、cvKMeans2:K均值;

    216、cvCloneMat:根据一个已有的矩阵创建一个新矩阵;

    217、cvPreCornerDetect:计算用于角点检测的特征图;

    218、cvGetImage:CvMat图像数据格式转换成IplImage图像数据格式;

    219、cvMatMul:两矩阵相乘;

    展开全文
  • Linux常用库函数

    2022-02-13 11:12:37
    库函数

    1 getopt()

    getopt被用来解析命令行选项参数,就不用自己处理argv了。

    头文件:#include <unistd.h>

    原型:int getopt(int argc, char * const argv[], const char *optstring);

    参数:optstring - 选项字符串

    1. 单个字符,表示选项;
    2. 单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg;
    3. 单个字符后跟两个冒号,表示该选项后必须跟一个参数。参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。

         例1:optstring为"a:b:cd::e"。对应到命令行就是-a ,-b ,-c ,-d, -e ;其中a b d后面有冒号,则后面必须跟一个参数;而c e后面没有冒号,所有不用跟参数。比如-a 11或-a11,11表示a的参数。           

    头文件与之相关变量(不用自己定义,直接使用):

    1. extern char *optarg; //选项的参数指针

    2. extern int optind, //下一个检索位置:下一次调用getopt的时,从optind存储的位置处重新开始检查选项。

    3. extern int opterr, //是否将错误信息输出到stderr:当opterr=0时,getopt不向stderr输出错误信息。

    4. extern int optopt; //不在选项字符串optstring中的选项:当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getop()返回'?’、

    例1:

    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc, char **argv)
    {
        int ch;
     
        while( (ch = getopt(argc, argv, "ab:c::")) != -1 )
        {
               switch(ch)
              {
                   case 'a':
                       printf("option = a, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case 'b':
                       printf("option = b, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case 'c':
                       printf("option = c, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case '?':
                        printf("option =? , optopt = %c, optarg = %s\n", optopt, optarg);
                        break;
                  default:
                       printf("default, ch = %c\n",ch);
                       break;
               }
        }
     
        return 0;
    }

     例2:

    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc, char **argv)
    {
        int ch;
    
    	printf("optind:%d,opterr:%d\n",optind,opterr);
     
        while( (ch = getopt(argc, argv, "ab:c::")) != -1 )
        {
    		  printf("optind: %d\n", optind);
    
              switch(ch)
              {
                   case 'a':
                       printf("option = a, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case 'b':
                       printf("option = b, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case 'c':
                       printf("option = c, optopt = %c, optarg = %s\n", optopt, optarg);
                       break;
                  case '?':
                        printf("option =? , optopt = %c, optarg = %s\n", optopt, optarg);
                        break;
                  default:
                       printf("default, ch = %c\n",ch);
                       break;
               }
        }
     
        return 0;
    }

     

    又上面可以看出:optind和opterr的初始值都为1,opterr非零表示产生的错误要输出到stderr上。optind的初值为1是因为,main函数的那两个参数了,argc表示参数的个数,argv[]表示每个参数字符串,./test -a -b hello -cwlord,实际上真正的参数是用第二个-a 开始,也就是argv[1],所以optind的初始值为1;

    2 getopt_long()

    头文件:#include<getopt.h>

    函数原型:int getopt_long(int argc, char * const argv[],const char *optstring, const struct option *longopts,int *longindex)

    参数:optstring - 选项字符串

               longopts - 是一个结构的实例

    struct option 
    {
      const char *name;  /*name表示的是长参数名*/
      int has_arg;       /*has_arg有3个值:
                           1、no_argument(或者是0),表示该参数后面不跟参数值;
                           2、required_argument(或者是1),表示该参数后面一定要跟个参数值
                           3、optional_argument(或者是2),表示该参数后面可以跟,也可以不跟参数值
                         */
      int *flag;         /*用来决定,getopt_long()的返回值到底是什么。如果flag是null,则函数会返回与                            
                           该项option匹配的val值*/
      int val;           /*和flag联合决定返回值*/
    }

         longindex - 如果longindex非空,它指向的变量将记录当前找到参数符合longopts里的第几个元素的描述,即是longopts的下标值

    #include <stdio.h>
    #include <unistd.h>
    #include<getopt.h>
    
    static struct option long_options[] =
    
    {
    
            {"add", no_argument, NULL, 'a'},
    
            {"back", required_argument, NULL, 'b'},
    
            {"create", required_argument, NULL, 'c'},
    
            {0, 0, 0, 0},
    
    };
     
    int main(int argc, char **argv)
    {
        int ch;
    	int option_index = 0;
    	printf("optind:%d,opterr:%d\n",optind,opterr);
     
        while( (ch = getopt_long(argc, argv, "ab:c::",long_options, &option_index)) != -1 )
        {
    		printf("optind: %d\n", optind);
    
    		switch(ch)
    		{
    			case 'a':
    			   printf("option = a, optopt = %c, optarg = %s\n", optopt, optarg);
    			   break;
    			case 'b':
    			   printf("option = b, optopt = %c, optarg = %s\n", optopt, optarg);
    			   break;
    			case 'c':
    			   printf("option = c, optopt = %c, optarg = %s\n", optopt, optarg);
    			   break;
    			case '?':
    				printf("option =? , optopt = %c, optarg = %s\n", optopt, optarg);
    				break;
    			default:
    			   printf("default, ch = %c\n",ch);
    			   break;
    		}
    
    		printf ("option %s\n", long_options[option_index].name);
        }
     
        return 0;
    }

    3 dlopen()

    dlopen() 功能是以指定模式打开指定的动态链接库文件,并返回一个句柄给dlsym()的调用进程。使用dlclose()来卸载打开的库。

    dlopen这个函数加载由以null结尾的字符串文件名命名的动态共享对象(共享库)文件,并为加载的对象返回不透明的“句柄”。此句柄与 dlopen API 中的其他函数一起使用,例如dlsym(),dladdr(),dlinfo()和dlclose()

    #include <dlfcn.h>

    void *dlopen(const char *filename, int flags);

    void *dlsym(void *handle, const char *symbol);

    int dlclose(void *handle);

    char *dlerror(void);

    参数:

    1. filename:库路径;
    2. flags:标志指明是否立刻计算库的依赖性
      1. RTLD_LAZY:立刻计算库的依赖性;
      2. RTLD_NOW:在需要的时候才计算库的依赖性;
    3. handle:由dlopen打开动态链接库后返回的指针;
    4. symbol:是要求获取的函数的名称,函数返回值是void*,指向函数的地址,供调用使用​​​​​​​

    注意:编译时候要加入 -ldl (指定dl库) -rdynamic(通知链接器将所有符号添加到动态符号表中(目的是能够通过使用 dlopen 来实现向后跟踪)

    #include <stdio.h>
    #include <stdlib.h>
    #include <dlfcn.h>
    
    #define LIB_PATH "./libsd.so"
    
    typedef int (*Callback_func)(int, int);
    
    int main()
    {
        void *dlhandler;
        char *error;
        Callback_func func = NULL;
    
        dlhandler = dlopen(LIB_PATH, RTLD_LAZY);
        if(dlhandler == NULL)
    	{
            fprintf(stderr,"%s\n",dlerror());
            exit(-1);
        }
    
        dlerror();
    
        func = dlsym(dlhandler,"sumab");
    
        printf("%d\n",func(1,2));
    
        dlclose(dlhandler);
    
        return 0;
    }

    4 fstatfs/statfs

     #include <sys/vfs.h>    /* or <sys/statfs.h> */

     int statfs(const char *path, struct statfs *buf);
     int fstatfs(int fd, struct statfs *buf);

    参数:  

    1. path: 位于需要查询信息的文件系统的文件路径名。    
    2. fd: 位于需要查询信息的文件系统的文件描述词。
    3. buf:以下结构体的指针变量,用于储存文件系统相关的信息
    struct statfs {
    	long    f_type;     /* 文件系统类型  */
    	long    f_bsize;    /* 经过优化的传输块大小,剩余空间大小k  */
    	long    f_blocks;   /* 文件系统数据块总数 */
    	long    f_bfree;    /* 可用块数 */
    	long    f_bavail;   /* 非超级用户可获取的块数 */
    	long    f_files;    /* 文件结点总数 */
    	long    f_ffree;    /* 可用文件结点数 */
    	fsid_t  f_fsid;     /* 文件系统标识 */
    	long    f_namelen;  /* 文件名的最大长度 */
    };

    返回说明:  

    • 成功执行时,返回0。失败返回-1.
    #include <stdio.h>
    #include <sys/vfs.h>
    
    int main()
    {
    	long totalBlocks = 0;
    	long freeDisk = 0;
    	const char *path = "/root/work/demo";
    	struct statfs diskinfo;
        int ret = statfs(path, &diskinfo);
    	if(ret != 0)
    	{
    		printf("statfs error");
    	}
    
    	totalBlocks = diskinfo.f_bsize;
        freeDisk = diskinfo.f_bfree * totalBlocks; //剩余空间大小
    
    	printf("totalBlocks = %ld, freeDisk = %ld\n",totalBlocks, freeDisk);
    
        return 0;
    }

     

    展开全文
  • Python常用库函数

    千次阅读 2020-04-06 01:13:52
    isdst=-1) 格式化字符串 日期/时间说明 值范围和实例 %Y 年份 0000~9999,例如:1900 %m 月份 01-12,例如:10 %B 月份名称 January~December,例如:April %b 月份名称缩写 Jan~Dec,例如:Apr %d 日期 01~31,例如:...
  • 单片机STM32开发中常用库函数

    千次阅读 2020-06-30 13:57:35
    //开中断,中断名称见函数库 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;//响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE...
  • python 常用库函数

    2022-06-29 16:14:13
    标题 python 常用库函数 1.random库 从序列中随机选择一个元素 random.choice([1, 2, 3, 5]) 将序列中的元素随机排序 random.shuffle([1, 5, 6, 8]) 2. os库 os.path.abspath(path) #返回path在当前系统中的绝对...
  • C语言库函数 常用函数名称及其用途

    千次阅读 2020-02-10 14:54:26
    文章目录 1.数学函数(#include <math.h> 或 #include “math.h”) 2.字符函数和字符串函数(#include <string.h> 或 #include “string.h”) 3.输入输出函数 4.动态存储分配函数 ......
  • 常用库函数

    2021-11-02 20:08:54
    函数名称:tolower() 函数作用:将大写字符转化为小写 头文件:ctype.h
  • STM32 HAL常用库函数(持续更新)

    万次阅读 多人点赞 2019-09-25 17:28:14
    函数名称:void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); 第一个参数:GPIOA,B,C,D…(取决于单片机型号) 第二个参数:可以取GPIO_PIN_0~GPIO_PIN_15 第三个参数:...
  • //开中断,中断名称见函数库 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;//响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE...
  • STL容器和algorithm库中的常用函数
  • 简谈几种常用库函数

    千次阅读 2018-09-30 13:01:36
    为什么会有库函数呢? 1.我们每个人在学习编程语言时,在一个代码写完后总是想迫不及待地将某些语句打印在屏幕上。此时我们总是会调用到printf()这个函数,它可以轻松地帮我们实现预期的功能; 2.在编程过程中我们...
  • gl常用库函数: glCallLists 执行一列显示列表 glClear 用当前值清除缓冲区 GlClearAccum 为累加缓冲区指定用于清除的值 glClearColor 为色彩缓冲区指定用于清除的值 glClearDepth 为深度缓冲区指定用于清除...
  • C语言常用库函数使用要点.docC语言常用库函数使用要点C语言常用库函数使用要点李素萍太原理工大学阳泉学院信息系C语言提供了丰富的库函数,只有有效地使用库函数,才能学好,学活C语言.为了-更好地使用库函数,本文从...
  • C/C++常用库函数总结

    千次阅读 2020-04-27 10:36:01
    pair 相当于一个类型名称,如果要创建一个这个类型的数组,可以写vector> 16.binary_search()、upper_bound()、lower_bound() 二分查找 vector a = {0,1,2,2,3,4}; 使用前提是a已经是升序排列 cout (a.begin(), a....
  • int getcurdir(intdrive,char *direc) 此函数返回指定驱动器的当前工作目录名称  drive 指定的驱动器(0=当前,1=A,2=B,3=C等)  direc 保存指定驱动器当前工作路径的变量 成功返回0  char *getcwd...
  • c++较常用库函数

    千次阅读 多人点赞 2018-07-22 14:31:17
    不知道原创是谁,转载自... C ++常用库函数   如图1所示,常用数学函数  头文件#include &lt;math&gt;或者#include &lt;math.h&gt;   函数原型 功能 返回值 ...
  • pyplot库常用库函数简介

    千次阅读 2020-10-20 21:41:39
    一)关于图像的显示函数 1.pyplot.figure(figsize=(4,4)) //指定图像显示区域(如参数figsize指定4行4列,参数figsize可不设置) 2.pyplot.subplot(1,2,1)//划分显示区域,分成1行2列,并将图像在第1个区域显示 ...
  • C++常用库函数

    万次阅读 多人点赞 2012-09-08 01:40:35
    C++常用库函数   1、常用数学函数  头文件 #include 或者 #include   函数原型 功能 返回值 int abs(int x) 求整数x的绝对值 绝对值 double acos(double ...
  • noip常用库函数(C语言)

    2021-05-22 07:57:25
    noip常用库函数(C语言)头文件 stdio.h函数列表函数类别 函数用途 详细说明文件操作删除文件 remove修改文件名称 rename生成临时文件名称 tmpfile得到临时文件路径 tmpnam文件访问 关闭文件 fclose刷新缓冲区 fflush...
  • 在网上看到一份关于STM32单片机开发资料,其中整理了STM32单片机常用寄存器的名称和功能,还有各个功能相关库函数的函数名和函数功能。可做为开发时的参考。
  • C语言常用库函数说明数学函数数学函数的原型 math.h中数学函数表函数名称函数与型参类型函数功能返回值acosdouble acos(x)double x;计算cos-1(x)的值-1<=x<=1计算结果asindouble asin(x)double x;计算sin-1(x)...
  • libxml2常用库函数详解

    千次阅读 2016-10-18 11:07:45
    libxml2库函数详解  许多事物符合80/20法则,libxml中也是20%的函数提供了80%的功能。下面的列表列出了libxml的主要函数及其用法说明。 1. 全局函数说明 头文件引用 xml2config --cflags...
  • noip常用库函数(C语言)头文件 stdio.h函数列表函数类别 函数用途 详细说明文件操作删除文件 remove修改文件名称 rename生成临时文件名称 tmpfile得到临时文件路径 tmpnam文件访问 关闭文件 fclose刷新缓冲区 fflush...
  • STM32单片机常用库函数

    万次阅读 多人点赞 2017-02-10 01:11:48
    STM32单片机常用库函数详细介绍
  • 方法名称(name) 位置(position) 作用(effect) forEach functions/Array/forEach.js -- every functions/Array/every.js -- some functions/Array/some.js -- filter functions/Array/filter.js -- find functions/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,503
精华内容 7,001
热门标签
关键字:

常用库函数的名称