皮皮网
皮皮网

【通达信k线倒计时源码】【网页游戏引擎源码】【画蛋机源码】puttext函数源码_cv2.puttext函数

来源:vue watch源码 发表时间:2024-12-28 09:36:39

1.关于c语言中new字符的使用。
2.OpenCV图像处理|Python OpenCV计算轮廓面积、函函数周长并显示极点
3.编写一个小程序,数源可以读入一个英文的函函数文本文件,显示这个文件,数源并统计这个文件有多少个字符,函函数多少个单词,数源通达信k线倒计时源码
4.如何用turbo c写窗体程序
5.详解用OpenCV绘制各类几何图形
6.OpenCV入门(五)快速学会OpenCV4文字绘制&边界填充

puttext函数源码_cv2.puttext函数

关于c语言中new字符的使用。

       /*给你看看教程吧!!*/

       Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、

       çª—口文本的清除和输入输出等函数。

        1.文本窗口的定义

        Turbo C2.0默认定义的文本窗口为整个屏幕,函函数 共有列(或列)行的文本

       å•å…ƒ, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字

       ç¬¦çš„颜色和强度。

        Turbo C2.0可以定义屏幕上的一个矩形域作为窗口, 使用window()函数定义。

       çª—口定义之后, 用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超

       å‡ºçª—口的边界。

        window()函数的调用格式为:

        void window(int left, int top, int right, int bottom);

        该函数的原型在conio.h 中 (关于文本窗口的所有函数其头文件均为conio.h,

       åŽé¢ä¸å†è¯´æ˜Ž)。 函数中形式参数(int left, int top)是窗口左上角的坐标,

       (int right, int bottom)是窗口的右下角坐标, 其中(left, top)和(right,

       bottom) 是相对于整个屏幕而言的。 Turbo C 2.0规定整个屏幕的左上角坐标为

       (1, 1), 右下角坐标为(, )。并规定沿水平方向为 Xè½´, 方向朝右; 沿垂直

       æ–¹å‘为 Yè½´, 方向朝下。若window()函数中的坐标超过了屏幕坐标的界限, 则窗

       å£çš„定义就失去了意义, 也就是说定义将不起作用, 但程序编译链接时并不出错。

        另外, 一个屏幕可以定义多个窗口, 但现行窗口只能有一个(因为DOS为单任

       åŠ¡æ“ä½œç³»ç»Ÿ), 当需要用另一窗口时, 可将定义该窗口的window() 函数再调用一

       æ¬¡, 此时该窗口便成为现行窗口了。

        如要定义一个窗口左上角在屏幕(, 5)处, 大小为列行的窗口可写成:

        window(, 5, , );

        2. 文本窗口颜色的设置

        文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置, 使用的函数及

       å…¶è°ƒç”¨æ ¼å¼ä¸º:

        设置背景颜色: void textbackground(int color);

        设置字符颜色: void textcolor(int color);

        有关颜色的定义见表1。

        表1. 有关颜色的定义

       â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”

        符号常数 数值 含义 字符或背景

       â€”——————————————————————————

        BLACK 0 黑 两者均可

        BLUE 1 兰 两者均可

        GREEN 2 绿 两者均可

        CYAN 3 青 两者均可

        RED 4 红 两者均可

        MAGENTA 5 洋红 两者均可

        BROWN 6 棕 两者均可

        LIGHTGRAY 7 淡灰 两者均可

        DARKGRAY 8 深灰 只用于字符

        LIGHTBLUE 9 淡兰 只用于字符

        LIGHTGREEN 淡绿 只用于字符

        LIGHTCYAN 淡青 只用于字符

        LIGHTRED 淡红 只用于字符

        LIGHTMAGENTA 淡洋红 只用于字符

        YELLOW 黄 只用于字符

        WHITE 白 只用于字符

        BLINK 闪烁 只用于字符

       â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”

        上表中的符号常数与相应的数值等价, 二者可以互换。例如设定兰色背景可

       ä»¥ä½¿ç”¨textbackground(1), 也可以使用textbackground(BLUE), 两者没有任何

       åŒºåˆ«, 只不过后者比较容易记忆, 一看就知道是兰色。

        Turbo C另外还提供了一个函数, 可以同时设置文本的字符和背景颜色, 这

       ä¸ªå‡½æ•°çš„调用格式为:

        void textattr(int attr);

        其中: attr的值表示颜色形式编码的信息, 每一位代表的含义如下:

        位 7 6 5 4 3 2 1 0

        B b b b c c c c

        ↓ ┕━━━┙ ┖—————┘

        闪烁 背景颜色 字符颜色

        字节低四位cccc设置字符颜色(0到), 4~6三位bbb设置背景颜色(0到7),

       ç¬¬7位B设置字符是否闪烁。假如要设置一个兰底黄字, 定义方法如下:

        textattr(YELLOW+(BLUE<<4));

        若再要求字符闪烁, 则定义变为:

        textattr(+YELLOW+(BLUE<<4);

        注意:

        (1) 对于背景只有0 到7 共八种颜色, 若取大于7 小于的数, 则代表的

       é¢œè‰²ä¸Žå‡ 7后的值对应的颜色相同。

        (2) 用textbackground()和textcolor() 函数设置了窗口的背景与字符颜

       è‰²åŽ, 在没有用clrscr()函数清除窗口之前, 颜色不会改变, 直到使用了函数

       clrscr(), 整个窗口和随后输出到窗口中的文本字符才会变成新颜色。

        (3) 用textattr()函数时背景颜色应左移4位, 才能使3位背景颜色移到正

       ç¡®ä½ç½®ã€‚

        下面这个程序使用了关于窗口大小的定义、颜色的设置等函数, 在一个屏幕

       ä¸Šä¸åŒä½ç½®å®šä¹‰äº†7个窗口, 其背景色分别使用了7种不同的颜色。

        例1.:

        #include <stdio.h>

        #include <conio.h>

        main()

        {

        int i;

        textbackground(0); /* 设置屏幕背景色 */

        clrscr(); /* 清除文本屏幕 */

        for(i=1; i<8; i++)

        {

        window(+i*5, 5+i, +i*5, +i); /* 定义文本窗口 */

        textbackground(i); /* 定义窗口背景色 */

        clrscr(); /* 清除窗口 */

        }

        getch();

        }

        3. 窗口内文本的输入输出函数

        一、窗口内文本的输出函数

        int cprintf("<格式化字符串>", <变量表>);

        int cputs(char *string);

        int putch(int ch);

        cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf() 函

       æ•°çš„用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf() 函

       æ•°çš„输出为整个屏幕。

        cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样, 只

       æ˜¯å—窗口大小的限制。

        putch()函数输出一个字符到窗口内。

        注意:

        (1) 使用以上几种函数, 当输出超出窗口的右边界时会自动转到下一行的

       å¼€å§‹å¤„继续输出。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行

       ä¸Šå·ç›´åˆ°è¾“出结束为止。

        二、窗口内文本的输入函数

        int getche(void);

        该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字

       ç¬¦, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一

       è¡Œçš„开始位置。

        下面这个程序给例1.中加入了一些文本的输出函数。

        例2.:

        #include <stdio.h>

        #include <conio.h>

        int main()

        {

        int i;

        char *c[]={ "BLACK", "BLUE", "GREEN", "CYAN", "RED",

        "MAGENTA", "BROWN", "LIGHTGRAY"};

        textbackground(0); /* 设置屏幕背景色 */

        clrscr(); /* 清除文本屏幕 */

        for(i=1; i<8; i++)

        {

        window(+i*5, 5+i, +i*5, +i); /* 定义文本窗口 */

        textbackground(i); /* 定义窗口背景色 */

        clrscr(); /* 清除窗口 */

        }

        getch();

        return 0;

        }

        4. 有关屏幕操作的函数

        void clrscr(void); 清除当前窗口中的文本内容, 并把光标定位在窗口

        的左上角(1, 1)处。

        void clreol(void); 清除当前窗口中从光标位置到行尾的所有字符, 光

        标位置不变。

        void gotoxy(x, y); 该函数很有用, 它用来定位光标在当前窗口中的位

        置。这里x, y是指光标要定位处的坐标(相对于窗口

        而言), 当x, y超出了窗口的大小时, 该函数就不起

        作用了。

        int gettext(int xl, int yl, int x2, int y2, void *buffer);

        int puttext(int x1, int y1, int x2, int y2, void *buffer);

        gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer 指针指向

       çš„一个内存空间。内存的大小用下式计算:

        所用字节大小=行数*列数*2

       å…¶ä¸­:

        行数=y2-y1+1 列数=x2-x1+1

        puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏

       å¹•ä¸ŠæŒ‡å®šçš„位置。

        int movetext(int x1, int x2, int y2, int x3, int y3);

        movetext()函数将屏幕上左上角为(x1, y1), 右下角为(x2, y2)的一矩形窗

       å£å†…的文本内容拷贝到左上角为(x3, y3)的新的位置。该函数的坐标也是相对于

       æ•´ä¸ªå±å¹•è€Œè¨€çš„。

        注意:

        1. gettext()函数和puttext()函数中的坐标是对整个屏幕而言的, 即是屏

       å¹•çš„绝对坐标, 而不是相对窗口的坐标。

        2. movetext()函数是拷贝而不是移动窗口区域内容, 即使用该函数后, 原

       ä½ç½®åŒºåŸŸçš„文本内容仍然存在。

        例3.

        include <conio.h>

        main()

        {

        int i;

        char *f[]={ "Load F3", "Pick Alt-F3", "New ",

        "Save F2", "Write to ", "Directory",

        "Change dir", "Os shee ", "Quit Alt-X"};

        char buf[9**2];

        clrscr();

        textcolor(YELLOW);

        textbackground(BLUE);

        clrscr();

        gettext(, 2, , , buf);

        window(, 2, , );

        textbackground(RED);

        textcolor(YELLOW);

        clrscr();

        for(i=0; i<9; i++)

        {

        gotoxy(1, i++);

        cprintf("%s", f[i]);

        }

        getch();

        movetext(, 2, , , , );

        puttext(, 2, , , buf);

        getch();

        }

        下面再介绍一些函数:

        void highvideo(void); 设置显示器高亮度显示字符。

        void lowvideo(void); 设置显示器低亮度显示字符。

        void normvideo(void); 使显示器返回到程序运行前的显示方式。

        int wherex(void); 这两个函数返回当前窗口下光标的x, y坐标。

        int wherey(void);

OpenCV图像处理|Python OpenCV计算轮廓面积、周长并显示极点

       Python OpenCV计算轮廓面积、数源周长并显示极点

       通过Python的函函数OpenCV库,可以方便地计算图像中轮廓的数源面积和周长,并且能够清晰地显示轮廓的函函数极点。以下为实现此功能的数源完整代码。

       首先,函函数通过函数解析来理解代码中关键步骤的数源含义:

       1、cv2.contourArea()函数用来计算轮廓的函函数面积。

       2、cv2.arcLength函数用于计算轮廓的周长。

       3、left = tuple(ct[ct[:, :, 0].argmin()][0]) # 图像轮廓的最左端像素点的坐标

       4、top = tuple(ct[ct[:, :, 1].argmin()][0]) # 图像轮廓的最顶端像素点的坐标

       5、cv2.circle(img, bottom, 5, (0, 0, ), -1)

       6、cv2.FONT_HERSHEY_SIMPLEX,网页游戏引擎源码 0.5, (0, , 0), 1

       结合以上解析,代码逻辑清晰:利用OpenCV库中的函数,首先计算轮廓的面积与周长,然后分别找到轮廓的最左端、最顶端坐标。接着,使用cv2.circle函数绘制轮廓的极点,并通过cv2.putText添加文字说明。最终,展示处理后的图像,直观呈现轮廓的面积、周长与极点信息。

编写一个小程序,可以读入一个英文的文本文件,显示这个文件,并统计这个文件有多少个字符,多少个单词,

       #include<stdio.h>

       //定义一个结构体来统计所有的信息

       struct ALLNUM {

        int wordnum, charnum; //wordnum,charnum分别表示单词和字符的个数。

        unsigned char blank, tab, enter;

        // blank, tab,enter,分别表示空格,TAB,段落的个数。

        //在程序中用空格,画蛋机源码TAB来划分单词与字符

       };

       unsigned char *str;

       void puttext(void);

       struct ALLNUM num(void);

       int main(void)

       {

        puttext();

        num();

        return 0;

       }

       void puttext(void)

       {

        printf("请输入相应的字符:\n");

        scanf("%s",str);

        getchar();

       }

       struct ALLNUM num(void)//返回结构体类型的函数。将所有的个数信息返回

       {

        struct ALLNUM tempnum;

        //这里添加相关的统计类的语句

        return tempnum;

       }

       //注:由于时间限制在分钟以内,所以不可能完全将所以程序写完,如真的想把这个程序很好的完成,请/ //联系我。以上程序可能有很多错误的地方。

如何用turbo c写窗体程序

       Turbo

       C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、

       窗口文本的清除和输入输出等函数。

       1.文本窗口的定义

       Turbo

       C2.0默认定义的文本窗口为整个屏幕,

       共有列(或列)行的文本

       单元,

       每个单元包括一个字符和一个属性,

       字符即ASCII

       码字符,

       属性规定该字

       符的颜色和强度。

       Turbo

       C2.0可以定义屏幕上的一个矩形域作为窗口,

       使用window()函数定义。

       窗口定义之后,

       用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超

       出窗口的边界。

       window()函数的调用格式为:

       void

       window(int

       left,

       int

       top,

       int

       right,

       int

       bottom);

       该函数的原型在conio.h

       中

       (关于文本窗口的所有函数其头文件均为conio.h,

       后面不再说明)。

       函数中形式参数(int

       left,

       int

       top)是窗口左上角的坐标,

       (int

       right,

       int

       bottom)是窗口的右下角坐标,

       其中(left,

       top)和(right,

       bottom)

       是相对于整个屏幕而言的。

       Turbo

       C

       2.0规定整个屏幕的左上角坐标为

       (1,

       1),

       右下角坐标为(,

       )。并规定沿水平方向为

       X轴,

       方向朝右;

       沿垂直

       方向为

       Y轴,

       方向朝下。若window()函数中的坐标超过了屏幕坐标的界限,

       则窗

       口的定义就失去了意义,

       也就是说定义将不起作用,

       但程序编译链接时并不出错。

       另外,

       一个屏幕可以定义多个窗口,

       但现行窗口只能有一个(因为DOS为单任

       务操作系统),

       当需要用另一窗口时,

       可将定义该窗口的window()

       函数再调用一

       次,

       此时该窗口便成为现行窗口了。

       如要定义一个窗口左上角在屏幕(,

       5)处,

       大小为列行的窗口可写成:

       window(,

       5,

       ,

       );

       2.

       文本窗口颜色的设置

       文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置,

       使用的函数及

       其调用格式为:

       设置背景颜色:

       void

       textbackground(int

       color);

       设置字符颜色:

       void

       textcolor(int

       color);

       有关颜色的定义见表1。

       表1.

       有关颜色的定义

       ━━━━━━━━━━━━━━━━━━━━━━━━━━━

       符号常数

       数值

       含义

       字符或背景

       ———————————————————————————

       BLACK

       0

       黑

       两者均可

       BLUE

       1

       兰

       两者均可

       GREEN

       2

       绿

       两者均可

       CYAN

       3

       青

       两者均可

       RED

       4

       红

       两者均可

       MAGENTA

       5

       洋红

       两者均可

       BROWN

       6

       棕

       两者均可

       LIGHTGRAY

       7

       淡灰

       两者均可

       DARKGRAY

       8

       深灰

       只用于字符

       LIGHTBLUE

       9

       淡兰

       只用于字符

       LIGHTGREEN

       

       淡绿

       只用于字符

       LIGHTCYAN

       

       淡青

       只用于字符

       LIGHTRED

       

       淡红

       只用于字符

       LIGHTMAGENTA

       

       淡洋红

       只用于字符

       YELLOW

       

       黄

       只用于字符

       WHITE

       

       白

       只用于字符

       BLINK

       

       闪烁

       只用于字符

       ━━━━━━━━━━━━━━━━━━━━━━━━━━━

       上表中的符号常数与相应的数值等价,

       二者可以互换。例如设定兰色背景可

       以使用textbackground(1),导入源码到sts

       也可以使用textbackground(BLUE),

       两者没有任何

       区别,

       只不过后者比较容易记忆,

       一看就知道是兰色。

       Turbo

       C另外还提供了一个函数,

       可以同时设置文本的字符和背景颜色,

       这

       个函数的调用格式为:

       void

       textattr(int

       attr);

       其中:

       attr的值表示颜色形式编码的信息,

       每一位代表的含义如下:

       位

       7

       6

       5

       4

       3

       2

       1

       0

       B

       b

       b

       b

       c

       c

       c

       c

       ↓

       ┕━━━┙

       ┖—————┘

       闪烁

       背景颜色

       字符颜色

       字节低四位cccc设置字符颜色(0到),

       4~6三位bbb设置背景颜色(0到7),

       第7位B设置字符是否闪烁。假如要设置一个兰底黄字,

       定义方法如下:

       textattr(YELLOW+(BLUE<<4));

       若再要求字符闪烁,

       则定义变为:

       textattr(+YELLOW+(BLUE<<4);

       注意:

       (1)

       对于背景只有0

       到7

       共八种颜色,

       若取大于7

       小于的数,

       则代表的

       颜色与减

       7后的值对应的颜色相同。

       (2)

       用textbackground()和textcolor()

       函数设置了窗口的背景与字符颜

       色后,

       在没有用clrscr()函数清除窗口之前,

       颜色不会改变,

       直到使用了函数

       clrscr(),

       整个窗口和随后输出到窗口中的文本字符才会变成新颜色。

       (3)

       用textattr()函数时背景颜色应左移4位,

       才能使3位背景颜色移到正

       确位置。

       下面这个程序使用了关于窗口大小的定义、颜色的设置等函数,

       在一个屏幕

       上不同位置定义了7个窗口,

       其背景色分别使用了7种不同的颜色。

       例1.:

       #include

       <stdio.h>

       #include

       <conio.h>

       main()

       {

       int

       i;

       textbackground(0);

       /

*

       设置屏幕背景色

       */

       clrscr();

       /

*

       清除文本屏幕

       */

       for(i=1;

       i<8;

       i++)

       {

       window(+i*5,

       5+i,

       +i*5,

       +i);

       /

*

       定义文本窗口

       */

       textbackground(i);

       /

*

       定义窗口背景色

       */

       clrscr();

       /

*

       清除窗口

       */

       }

       getch();

       }

       3.

       窗口内文本的输入输出函数

       一、窗口内文本的输出函数

       int

       cprintf("<格式化字符串>",

       <变量表>);

       int

       cputs(char

       *string);

       int

       putch(int

       ch);

       cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf()

       函

       数的用法完全一样,

       区别在于cprintf()函数的输出受窗口限制,

       而printf()

       函

       数的输出为整个屏幕。

       cputs()函数输出一个字符串到屏幕上,

       它与puts()函数用法完全一样,

       只

       是受窗口大小的限制。

       putch()函数输出一个字符到窗口内。

       注意:

       (1)

       使用以上几种函数,

       当输出超出窗口的右边界时会自动转到下一行的

       开始处继续输出。当窗口内填满内容仍没有结束输出时,

       窗口屏幕将会自动逐行

       上卷直到输出结束为止。

       二、窗口内文本的输入函数

       int

       getche(void);

       该函数在前面已经讲过,

       需要说明的是,

       getche()函数从键盘上获得一个字

       符,

       在屏幕上显示的时候,

       如果字符超过了窗口右边界,

       则会被自动转移到下一

       行的开始位置。

       下面这个程序给例1.中加入了一些文本的输出函数。

       例2.:

       #include

       <stdio.h>

       #include

       <conio.h>

       int

       main()

       {

       int

       i;

       char

       *c[]={ "BLACK",

       "BLUE",

       "GREEN",

       "CYAN",

       "RED",

       "MAGENTA",

       "BROWN",

       "LIGHTGRAY"};

       textbackground(0);

       /

*

       设置屏幕背景色

       */

       clrscr();

       /

*

       清除文本屏幕

       */

       for(i=1;

       i<8;

       i++)

       {

       window(+i*5,

       5+i,

       +i*5,

       +i);

       /

*

       定义文本窗口

       */

       textbackground(i);

       /

*

       定义窗口背景色

       */

       clrscr();

       /

*

       清除窗口

       */

       }

       getch();

       return

       0;

       }

       4.

       有关屏幕操作的函数

       void

       clrscr(void);

       清除当前窗口中的文本内容,

       并把光标定位在窗口

       的左上角(1,

       1)处。

       void

       clreol(void);

       清除当前窗口中从光标位置到行尾的所有字符,

       光

       标位置不变。

       void

       gotoxy(x,

       y);

       该函数很有用,

       它用来定位光标在当前窗口中的位

       置。这里x,

       y是指光标要定位处的坐标(相对于窗口

       而言),

       当x,

       y超出了窗口的大小时,

       该函数就不起

       作用了。

       int

       gettext(int

       xl,社交 图片 app源码

       int

       yl,

       int

       x2,

       int

       y2,

       void

       *buffer);

       int

       puttext(int

       x1,

       int

       y1,

       int

       x2,

       int

       y2,

       void

       *buffer);

       gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer

       指针指向

       的一个内存空间。内存的大小用下式计算:

       所用字节大小=行数*列数*2

       其中:

       行数=y2-y1+1

       列数=x2-x1+1

       puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏

       幕上指定的位置。

       int

       movetext(int

       x1,

       int

       x2,

       int

       y2,

       int

       x3,

       int

       y3);

       movetext()函数将屏幕上左上角为(x1,

       y1),

       右下角为(x2,

       y2)的一矩形窗

       口内的文本内容拷贝到左上角为(x3,

       y3)的新的位置。该函数的坐标也是相对于

       整个屏幕而言的。

       注意:

       1.

       gettext()函数和puttext()函数中的坐标是对整个屏幕而言的,

       即是屏

       幕的绝对坐标,

       而不是相对窗口的坐标。

       2.

       movetext()函数是拷贝而不是移动窗口区域内容,

       即使用该函数后,

       原

       位置区域的文本内容仍然存在。

       例3.

       include

       <conio.h>

       main()

       {

       int

       i;

       char

       *f[]={ "Load

       F3",

       "Pick

       Alt-F3",

       "New

       ",

       "Save

       F2",

       "Write

       to

       ",

       "Directory",

       "Change

       dir",

       "Os

       shee

       ",

       "Quit

       Alt-X"};

       char

       buf[9**2];

       clrscr();

       textcolor(YELLOW);

       textbackground(BLUE);

       clrscr();

       gettext(,

       2,

       ,

       ,

       buf);

       window(,

       2,

       ,

       );

       textbackground(RED);

       textcolor(YELLOW);

       clrscr();

       for(i=0;

       i<9;

       i++)

       {

       gotoxy(1,

       i++);

       cprintf("%s",

       f[i]);

       }

       getch();

       movetext(,

       2,

       ,

       ,

       ,

       );

       puttext(,

       2,

       ,

       ,

       buf);

       getch();

       }

       下面再介绍一些函数:

       void

       highvideo(void);

       设置显示器高亮度显示字符。

       void

       lowvideo(void);

       设置显示器低亮度显示字符。

       void

       normvideo(void);

       使显示器返回到程序运行前的显示方式。

       int

       wherex(void);

       这两个函数返回当前窗口下光标的x,

       y坐标。

       int

       wherey(void);

详解用OpenCV绘制各类几何图形

       详解用OpenCV绘制各类几何图形

       本文详细介绍了OpenCV绘制几何图形的方法,利用cv2.line()、v2.circle()、cv2.rectangle()、cv2.ellipse()、cv2.polylines()、cv2.putText()函数实现。

       一. 绘制直线

       在OpenCV中,绘制直线通过调用cv2.line()函数实现,需要获取直线的起点和终点坐标。下面的代码展示了如何绘制一条直线:通过np.zeros()创建一幅黑色图像,接着调用cv2.line()绘制直线,参数包括起始坐标和颜色、粗细。

       输出结果如图3-1所示,从坐标(0,0)到(,)绘制一条直线,直线颜色为(,,),粗细为5。

       二. 绘制矩形

       绘制矩形通过调用cv2.rectangle()函数实现,该函数需要矩形的左上角和右下角坐标。下面的代码展示了如何绘制一个矩形:通过np.zeros()创建一幅黑色图像,接着调用cv2.rectangle()绘制矩形,参数包括左上角坐标、右下角坐标、颜色、粗细。

       输出结果如图3-2所示,从左上角坐标为(,),右下角坐标为(,),绘制的矩形颜色为蓝色(,0,0),粗细为2。

       三. 绘制圆形

       绘制圆形同样使用cv2.rectangle()函数,但需要额外参数,如中心点的位置坐标,半径等。下面的代码展示了如何绘制一个圆形:在圆形为(,)的位置,绘制了一个半径为,颜色为(,,0)、粗细为4的圆。

       注意,将粗细设置为“-1”时,绘制的圆为实心,如图3-4所示。

       四. 绘制椭圆

       绘制椭圆较为复杂,需要输入多个参数,如中心点的位置坐标,长轴和短轴的长度,椭圆沿逆时针方向旋转的角度等。下面的代码展示了如何绘制一个椭圆:椭圆中心为(,),长轴为,短轴为,偏转角度为,圆弧起始角的角度为0,圆弧终结角的角度为,表示一个完整的椭圆。绘制的颜色为(,0,),粗细为2。

       五. 绘制多边形

       绘制多边形通过调用cv2.polylines()函数实现,需要指定每个顶点的坐标。下面的代码展示了如何绘制一个闭合的多边形和一个五角星多边形。

       输出结果如图3-6和图3-7所示,分别展示了绘制的多边形。

       六. 绘制文字

       添加文字通过调用cv2.putText()函数实现,需要指定字体、文本内容、起始位置、字体大小、颜色等参数。下面的代码展示了如何绘制文字:在图像上绘制的文字为“I love Python!I love Huawei!”。

       七. 总结

       本文详细介绍了OpenCV绘制几何图形的方法,利用多种函数实现基本图形的绘制。初学者通过本文可以掌握基础图形绘制的用法,为后续应用提供帮助。同时,建议读者尝试结合本文内容实现一个简单的画图软件。

OpenCV入门(五)快速学会OpenCV4文字绘制&边界填充

       在探讨OpenCV4的文字绘制与边界填充技术中,我们将重点解析两个核心功能:文字绘制与边界填充。OpenCV为图像处理提供丰富的工具集,其中文字绘制功能通过putText()函数实现,允许在图像上添加文字信息。此函数接收参数如待绘制图像、文字内容、文字框左下角坐标、字体、尺寸因子、颜色和线条宽度等,允许高度定制化文字呈现。

       以示例代码展示,首先通过for循环调整像素值,实现色彩渐变效果,然后使用getTextSize()确定文字大小,进而通过putText()绘制字符串"Hello World"。结果可视化显示。

       进入边界填充技术领域,复制MakeBorder()函数发挥关键作用。此函数为图像添加额外边界,可通过参数调整扩充像素数量,支持多种边界处理策略,如复制法、反射法、常量法等,各具特色。通过代码实例,直观展示了不同边界填充效果,如复制法、反射法、外包法和常量法的实现与输出结果。

相关栏目:综合