OpenCV 绘图

这篇博客介绍了如何利用OpenCV在Python中绘制直线、圆形、矩形和添加文字。通过`cv2.line()`、`cv2.circle()`、`cv2.rectangle()`和`cv2.putText()`函数,结合参数说明,展示了具体的实现代码和结果图像。
摘要由CSDN通过智能技术生成

 同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。


OpenCV 可以透过一些函数,来绘制直线、圆形、矩形、多边形、文字于图片上。下面我们一一来看如何进行这些绘制。

畫直線

cv2.line(img,pt1,pt2,color[, thickness[, lineType[, shift]]])

函数为上方所示,需要输入的参数有图像、起始点、终止点、颜色等三个,后面则为选择性添加的选项,如线条粗细、线的类型等等。详细可以参考 OpenCV 的 Docs

import cv2
import numpy as np

picture = np.ones((100,100,3),'uint8')
picture = picture*255

picture_line = cv2.line(picture,(0,0),(50,50),(255,0,0),2)

cv2.imshow('line',picture_line)
cv2.waitKey(0)

 上方为程式码与绘制完的图像,程式码前 2 行为引入 OpenCV、numpy,第四行为建立一个 100 x 100 的图片,第 5 行乘以 255 目的是让数值全部都是 255 ,(255,255,255) 代表白色的意思,第 7 行为画一条 (0,0) 到 (50,50) 的直线,这边设定 (50,50) 是为了让读者了解起始点的算法是左上角开始,颜色我们填入 (255,0,0) 是蓝色 ,三个空格依序是 BGR , 第 9 、10 行是显示的部分 (不懂显示的可以回去看前面一篇关于显示图片的文章waitKey 的文章)。

画圆形

cv2.circle(img,center,radius,color[, thickness[, lineType[, shift]]])

函数为上方所示,需要输入的参数有图像、圆心、半径、颜色等三个,后面则为选择性添加的选项,如线条粗细、线的类型等等。详细可以参考 OpenCV 的 Docs

import cv2
import numpy as np

picture = np.ones((200,200,3),'uint8')
picture = picture*255

picture_circle = cv2.circle(picture,(100,100),20,(255,0,0),2)

cv2.imshow('line',picture_circle)
cv2.waitKey(0)

上方为程式码与绘制完的图像,程式码前 2 行为引入 OpenCV、numpy,第四行为建立一个 200 x 200 的图片 (因为前一张图太小了放大一点),第 5 行乘以 255 目的是让数值全部都是 255 ,(255,255,255) 代表白色的意思,第 7 行为画一个 (100,100) 为圆心半径 20 的圆,颜色我们填入 (255,0,0) 是蓝色 ,三个空格依序是 BGR , 第 9 、10 行是显示的部分 (不懂显示的可以回去看前面一篇关于显示图片的文章与 waitKey的文章)。

畫矩形

cv2.rectangle(img,pt1,pt2,color[, thickness[, lineType[, shift]]])

函数为上方所示,需要输入的参数有图像、矩形左上点、矩形右下点、颜色等三个,后面则为选择性添加的选项,如线条粗细、线的类型等等。详细可以参考 OpenCV 的 Docs

import cv2
import numpy as np

picture = np.ones((200,200,3),'uint8')
picture = picture*255

picture_rectangle = cv2.rectangle(picture,(50,50),(150,150),(255,0,0),2)

cv2.imshow('line',picture_rectangle)
cv2.waitKey(0)

 上方为程式码与绘制完的图像,程式码前 2 行为引入 OpenCV、numpy,第四行为建立一个 200 x 200 的图片,第 5 行乘以 255 目的是让数值全部都是 255 ,(255,255,255) 代表白色的意思,第 7 行为画一 (50,50) 到 (150,150) 的矩形,颜色我们填入 (255,0,0) 是蓝色 ,三个空格依序是 BGR , 第 9 、10 行是显示的部分 (不懂显示的可以回去看前面一篇关于显示图像的文章与 waitKey 的文章)。

印上文字

函数为上方所示,需要输入的参数有图像、显示的文字、文字左下角的点 (org)、文字字体 (fontFace)、文字大小 (fontScale),后面则为选择性添加的选项,如线条粗细、线的类型等等。详细可以参考 OpenCV 的 Docs

cv2.putText(img,text,org,fontFace,fontScale,color[, thickness[, lineType[, shift]]])

import cv2
import numpy as np

picture = np.ones((200,200,3),'uint8')
picture = picture*255

picture_text = cv2.putText(picture,"Hello World",(20,100),cv2.FONT_HERSHEY_SCRIPT_COMPLEX,1.0,(255,0,0),2)

cv2.imshow('text',picture_text)
cv2.waitKey(0)

 上方为程式码与绘制完的图像,程式码前 2 行为引入 OpenCV、numpy,第四行为建立一个 200 x 200 的图片,第 5 行乘以 255 目的是让数值全部都是 255 ,(255,255,255) 代表白色的意思,第 7 行为显示文字 Hello World,颜色我们填入 (255,0,0) 是蓝色 ,三个空格依序是 BGR , 第 9 、10 行是显示的部分 (不懂显示的可以回去看前面一篇关于显示图像的文章与 waitKey 的文章)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值