OPENCV学习笔记三:图像基本练习

	这篇文章主要介绍如何使用python和opencv实现一些简单的图形操作。

一、绘制图形:

第一部分主要介绍如何在一张空白图片中绘制各种图形,比如 线、矩形、圆形及多边形。

让我们从代码开始,然后讲每一个函数的参数含义。

  1. 绘制线段 cv.line(picture, (10, 10), (200, 200), (255, 255, 0), 1, cv.LINE_8, 0)
    参数1:画线的目标图片,就是在哪张图片上绘制线段
    参数2-3:画线的起点坐标和终点坐标
    参数4:线段的颜色三个数字的意思是BGR
    参数5:线段粗细(1 2 3三种程度)

  2. 绘制矩形 cv.rectangle(picture, (100, 100), (400, 400), (0, 255, 0), 3, cv.LINE_8, 0)
    参数1:绘制矩形的目标图片
    参数2-3:矩形的两个对角点
    参数4:矩形颜色
    参数5:矩形边框粗细(-1为填充整个矩形)

  3. 绘制圆形 cv.circle(picture, (250, 250), 150, (0, 0, 255), -1, cv.LINE_8, 0)
    参数1:绘制圆形的目标图片
    参数2:原点坐标
    参数3:半径
    参数4:圆形边框颜色
    参数5:边框粗细(-1为填充整个圆形)

  4. 写字 cv.putText(picture0, “line”, (50, 50), cv.FONT_HERSHEY_PLAIN, 4, (0, 0, 255), 1, cv.LINE_8)
    参数1:放置文本的目标图片
    参数2:要显示的文本
    参数3:放置文本的起点坐标
    参数4:
    参数5:文本字体
    参数6:文本颜色
    参数7:文本粗细

具体代码:

import cv2 as cv
import numpy as np

# 创建三个像素400*400 3通道的空数组
picture0 = np.zeros([400, 400, 3], dtype=np.uint8)	
picture1 = np.zeros([400, 400, 3], dtype=np.uint8)
picture2 = np.zeros([400, 400, 3], dtype=np.uint8)
    
# 在picture0绘制三根线段,粗细颜色各不同
cv.line(picture0, (100, 80), (100, 380), (255, 255, 0), 1, cv.LINE_8, 0)
cv.line(picture0, (200, 80), (200, 380), (255, 0, 255), 2, cv.LINE_8, 0)
cv.line(picture0, (300, 80), (300, 380), (0, 255, 255), 3, cv.LINE_8, 0)
cv.putText(picture0, "line", (50, 50), cv.FONT_HERSHEY_PLAIN, 4, (0, 0, 255), 1, cv.LINE_8)

# 在picture1绘制三个矩形,最后一个边框颜色设置-1填充矩形
cv.rectangle(picture1, (50, 80), (150, 250), (0, 255, 0), 1, cv.LINE_8, 0)
cv.rectangle(picture1, (250, 80), (350, 250), (0, 255, 0), 3, cv.LINE_8, 0)
cv.rectangle(picture1, (50, 280), (250, 380), (0, 255, 0), -1, cv.LINE_8, 0)
cv.putText(picture1, "rectangle", (50, 50), cv.FONT_HERSHEY_PLAIN, 4, (0, 0, 255), 2, cv.LINE_8)
    
# 在picture2绘制四个圆形    
cv.circle(picture2, (100, 100), 40, (0, 0, 255), 1, cv.LINE_8, 0)
cv.circle(picture2, (300, 100), 40, (0, 255, 0), 2, cv.LINE_8, 0)
cv.circle(picture2, (100, 300), 40, (255, 0, 0), 3, cv.LINE_8, 0)
cv.circle(picture2, (300, 300), 40, (255, 255, 255), -1, cv.LINE_8, 0)
cv.putText(picture2, "circle", (50, 200), cv.FONT_HERSHEY_PLAIN, 4, (0, 0, 255), 3, cv.LINE_8)
    
cv.imshow("line", picture0)
cv.imshow("rectangle", picture1)
cv.imshow("circle", picture2)

cv.waitKey(0)
cv.destroyAllWindows()

结果展示:

本文作为自学路上的笔记使用,有错误还请各位大佬指正[抱拳]。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值