图像处理之opencv形状绘制

1、线段绘制

  • cv2.line()
  • 参数:1、dst; 2、起始位置; 3、结束位置; 4、颜色;5、粗细
  • 与左上角为坐标原点,坐标为(x , y)
import cv2
import numpy as np
newImageInfo = (400, 400, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
# 绘制线段
#参数:1、dst; 2、起始位置; 3、结束位置; 4、颜色
cv2.line(dst, (100, 100), (300, 300), (0, 0, 255))#中间右斜倾红线

# 5、line w
cv2.line(dst, (100,300), (100, 200), (0, 255, 255), 20)#金黄色竖线
# 6、line type
cv2.line(dst, (150,300), (150, 200), (255, 0, 0), 20, cv2.LINE_AA)#蓝色竖线,尖端比较平滑

#固定三个点,连接三条线,就可以得到一个三角形
cv2.line(dst,(120, 100), (300, 240), (0, 255, 0), 3)
cv2.line(dst,(300, 240), (320, 80), (0, 255, 0), 3)
cv2.line(dst,(120, 100), (320, 80), (0, 255, 0), 3)

cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

2、矩形绘制

  • cv2.rectangle()
  • 参数:1、dst; 2、左上角;3、右下角;4、颜色;5、“-1”为填充,大于“0”为粗细
import cv2
import numpy as np
newImageInfo = (300, 300, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
cv2.rectangle(dst, (50,50), (250,250), (0, 255, 0), -1)#-1为填充
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

3、圆形绘制

  • cv2.circle()
  • 参数:1、dst; 2、圆心;3、半径;4、颜色;5、“-1”为填充,大于“0”为粗细
import cv2
import numpy as np
newImageInfo = (300, 300, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
cv2.circle(dst, (150,150), 100, (0, 255, 0), 2)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

4、弧形

4.1、半椭圆

  • cv2.ellipse()
  • 参数:1、dst; 2、椭圆圆心;3、轴(长轴 , 短轴);4、角度;5、开始;6、结束;7、颜色;8、边框
import cv2
import numpy as np
newImageInfo = (300, 300, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
cv2.ellipse(dst, (150,150), (150,80), 180, 0, 180, (0, 255, 255), -1)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

4.2、椭圆

import cv2
import numpy as np
newImageInfo = (300, 300, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
cv2.ellipse(dst, (150,150), (150,80), 0, 0, 360, (0, 255, 0), 2)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

5、任意形状图形的绘制

  • cv2.polylines()方法
import cv2
import numpy as np
newImageInfo = (300, 300, 3)#定义图片的宽高信息
dst = np.zeros(newImageInfo, np.uint8)
#指定图形中的各个点
points = np.array([[150, 50], [140, 140], [200, 170], [280, 250],[150, 50]], np.int32)
points = points.reshape((-1, 1, 2))
cv2.polylines(dst, [points], True, (0, 255, 255), 2)#2是边框宽度
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

6、图片文字绘制

  • cv2.putText()
  • 参数: 1、dst; 2、文字内容;3、坐标; 4、字体; 5、字体大小; 6、颜色; 7、细条粗细; 8、线条形状
import cv2
import numpy as np
img = cv2.imread('image.jpg', 1)#1读取彩色图片
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.rectangle(img, (100, 70), (350, 260), (0, 255, 0), 2)#圈出图中的花瓣
# 1、dst; 2、文字内容;3、坐标; 4、字体; 5、字体大小; 6、颜色; 7、细条粗细; 8、线条形状
cv2.putText(img, "this is flower", (100, 110), font, 1, (100,0,255), 2, cv2.LINE_AA)
cv2.imshow('dst', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

7、图片缩放重合展示

import cv2
img = cv2.imread('image.jpg', 1)#1读取彩色图片
height = int(img.shape[0]*0.4)
width = int(img.shape[1]*0.4)
imgResize = cv2.resize(img, (width, height))
for i in range(0, height):
    for j in range(0, width):
        img[i+100, j+200] = imgResize[i, j]
cv2.imshow('src', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值