【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制

博主微信 cvxiayixiao
【Segment Anything Model】计算机视觉检测分割任务专栏。 链接
【公开数据集预处理】特别是医疗公开数据集的接受和预处理,提供代码讲解。链接
【opencv+图像处理】opencv代码库讲解,结合图像处理知识,不仅仅是调库。链接

本专栏代码地址https://github.com/xiawei20161308104/xv_opencv_tutorials

文章目录

  • 1.本节涉及的opencv新函数
  • 2.opencv cv.line()绘制直线
    • 代码
    • 效果
  • 3.opencv cv.circle()绘制圆形
    • 代码
    • 效果
  • 3.opencv cv.circle()绘制实心圆
    • 代码
    • 效果:
  • 4.opencv cv.circle()图像上绘制多个圆
    • 代码
    • 效果
  • 5.opencv cv.rectangle()绘制矩形
    • 代码:
    • 效果
  • 6.opencv cv.rectangle()绘制多个矩形
    • 代码
    • 效果

1.本节涉及的opencv新函数

 cv.line(), 
 cv.circle() , 
 cv.rectangle(), 
 cv.ellipse(), 
 cv.putText() 

2.opencv cv.line()绘制直线

cv.line()函数用于绘制图像,首先有一个底图,在底图之上绘制直线,(0,0)为起始点,(511,511)为终止点,5为线宽
imshow()函数用于显示图像,第一个参数是窗口的名称,第二个参数是要显示的图像。
waitKey(0)函数用于等待用户按下任意键关闭图像窗口。
destroyAllWindows()函数用于关闭所有打开的窗口

代码

import numpy as np
import cv2 as cv
# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)
# 在图像上绘制一条蓝色的对角线,线宽为5像素
cv.line(img,(0,0),(511,511),(255,0,0),5)
cv.imshow('Image', img)
cv.waitKey(0)
cv.destroyAllWindows()

效果

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第1张图片

3.opencv cv.circle()绘制圆形

在上图基础上绘制一个半径为100的圆,圆心为(256, 256),颜色为红色,线宽为2

代码

第一个参数是图像。
第二个参数是圆心的坐标 (x, y)。
第三个参数是圆的半径。
第四个参数是颜色,以 (B, G, R) 的形式指定。
第五个参数是线宽,如果为负数,则表示填充整个圆

cv.circle(img, (256, 256), 100, (0, 0, 255), 2)

效果

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第2张图片

3.opencv cv.circle()绘制实心圆

在cv.circle()函数中将线宽参数(thickness)设置为负值

代码

# 绘制一个填充的圆,半径为100,圆心在(256, 256),颜色为蓝色
cv.circle(img, (256, 256), 100, (255, 0, 0), -1)

线宽参数(thickness)设置为-1,表示绘制填充的圆。 圆的半径为100,圆心位于(256, 256),填充颜色为蓝色((255,0, 0))。

效果:

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第3张图片

4.opencv cv.circle()图像上绘制多个圆

多次调用cv.circle()函数,并为每个圆指定不同的参数

代码

# 绘制多个实心圆与空心圆
import numpy as np
import cv2 as cv
# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)
# 在图像上绘制一条蓝色的对角线,线宽为5像素
cv.line(img,(0,0),(511,511),(255,0,0),5)
cv.circle(img, (256, 256), 100, (0, 0, 255), 2)
cv.circle(img, (256, 256), 100, (255, 0, 0), -1)
cv.circle(img, (100, 100), 50, (255, 0, 0), 2)
cv.circle(img, (200, 200), 80, (0, 255, 0), -1)
cv.circle(img, (300, 300), 30, (0, 0, 255), -1)

cv.imshow('Image', img)
cv.waitKey(0)
cv.destroyAllWindows()

效果

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第4张图片

5.opencv cv.rectangle()绘制矩形

代码:

import numpy as np
import cv2 as cv

# 创建一个空白图像
img = np.zeros((512, 512, 3), np.uint8)

# 在图像上绘制一个矩形,左上角坐标为(100, 100),右下角坐标为(400, 300),颜色为绿色,线宽为2
cv.rectangle(img, (100, 100), (400, 300), (0, 255, 0), 2)

# 显示图像
cv.imshow('Image', img)
cv.waitKey(0)
cv.destroyAllWindows()

第一个参数是图像。
第二个参数是矩形的左上角坐标 (x1, y1)。
第三个参数是矩形的右下角坐标 (x2, y2)。
第四个参数是颜色,以 (B, G, R) 的形式指定。
第五个参数是线宽,如果为负数,则表示填充整个矩形。

效果

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第5张图片

6.opencv cv.rectangle()绘制多个矩形

代码

import numpy as np
import cv2 as cv

# 画一个黑色背景
img = np.zeros((512, 512, 3), np.uint8)

# 画很多个矩形  -1是画一个实心的
cv.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 2)
cv.rectangle(img, (300, 300), (400, 400), (0, 0, 255), -1)

cv.imshow('Image', img)
cv.waitKey(0)
cv.destroyAllWindows()

效果

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制_第6张图片

你可能感兴趣的:(opencv+图像处理,opencv,图像处理,人工智能,cv画图,opencv画图)