文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在python中使用opencv绘制图形

2023-06-14 12:03

关注

这篇文章给大家介绍怎么在python中使用opencv绘制图形,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

实现方法

1)画线段 cv.line

在图片中绘制一段直线

# 绘制线段# 参数1:图片# 参数2:起点# 参数3:终点# 参数4:BGR颜色# 参数5:宽度cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);

参数说明

参数说明
参数1img原图片
参数2(60, 40)线段起点坐标(像素)
参数3(90, 90)线段终点坐标(像素)
参数4(255, 255, 255)BGR颜色(0 - 255)
参数52线段宽度

2)画圆形 cv.circle

在图片中绘制圆形

# 绘制圆形# 参数1:图片# 参数2:圆心# 参数3:半径# 参数4:BGR颜色# 参数5:宽度 值为-1时填充cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);

参数说明

参数说明
参数1img原图片
参数2(140, 120)圆心的坐标(像素)
参数360圆的半径(像素)
参数4(0, 0, 255)BGR颜色(0 - 255)
参数52线段宽度,为-1时进行填充

3)画矩形 cv.rectangle

在图片中绘制矩形

# 绘制矩形# 参数1:图片# 参数2:左上角# 参数3:右下角# 参数4:BGR颜色# 参数5:宽度 值为-1时填充cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);

参数说明

参数说明
参数1img原图片
参数2(220, 50)左上角的坐标(像素)
参数3(380, 220)右下角的坐标(像素)
参数4(0, 255, 0)BGR颜色(0 - 255)
参数52线段宽度,为-1时进行填充

4)画椭圆形 cv.ellipse

在图片中绘制椭圆形,这里参数就比较多了…

# 绘制椭圆# 参数1:图片# 参数2:圆心# 参数3:横纵轴长# 参数4:倾斜角度# 参数5:绘制起点角度# 参数6:绘制终点角度# 参数7:BGR颜色# 参数8:宽度 值为-1时填充cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);

参数说明

参数说明
参数1img原图片
参数2(60, 20)椭圆中心坐标(像素)
参数3(60, 20)椭圆横、纵的距离(像素)
参数40椭圆倾斜角度(0-360)
参数50绘制起点角度(0-360)
参数60绘制终点角度(0-360)
参数7(255, 255, 255)BGR颜色(0 - 255)
参数82线段宽度,为-1时进行填充

5)添加文本 cv.putText

给图片添加文本显示内容

# 添加文字# 参数1:图片# 参数2:文本内容# 参数3:文字位置# 参数4:文字类型# 参数5:文字大小# 参数6:BGR颜色# 参数7:文字粗细cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);

参数说明

参数说明
参数1img原图片
参数2“phone”文本内容
参数3(15, 30)文本左上角坐标位置(像素)
参数4cv2.FONT_HERSHEY_COMPLEX文字类型
参数51文字大小
参数7(255, 255, 255)BGR颜色(0 - 255)
参数81字体粗细

文字类型主要有下面几种:

cv.FONT_HERSHEY_SIMPLEX 正常尺寸无衬线
2、cv.FONT_HERSHEY_PLAIN 小尺寸无衬线
3、cv.FONT_HERSHEY_DUPLEX 正常尺寸(类型 1 的复制版)
4、cv.FONT_HERSHEY_COMPLEX 正常尺寸有衬线
5、cv.FONT_HERSHEY_TRIPLEX 正常尺寸有衬线(类型 4 的复杂版)
6、cv.FONT_HERSHEY_COMPLEX_SMALL (类型 4 的小尺寸)
7、cv.FONT_HERSHEY_SCRIPT_SIMPLEX 手写风格
8、cv.FONT_HERSHEY_SCRIPT_COMPLEX (类型 7 的复杂版)

以上字体可以试一下,可以看到不同的效果 (^_ ^)

完整代码

import cv2# 读取图片。img = cv2.imread("img.jpeg");# 绘制线段# 参数1:图片# 参数2:起点# 参数3:终点# 参数4:BGR颜色# 参数5:宽度cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);# 绘制圆形# 参数1:图片# 参数2:圆心# 参数3:半径# 参数4:BGR颜色# 参数5:宽度 值为-1时填充cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);# 绘制椭圆# 参数1:图片# 参数2:圆心# 参数3:横纵轴长# 参数4:倾斜角度# 参数5:绘制起点角度# 参数6:绘制终点角度# 参数7:BGR颜色# 参数8:宽度 值为-1时填充cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);# 绘制矩形# 参数1:图片# 参数2:左上角# 参数3:右下角# 参数4:BGR颜色# 参数5:宽度 值为-1时填充cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);# 添加文字# 参数1:图片# 参数2:文本内容# 参数3:文字位置# 参数4:文字类型# 参数5:文字大小# 参数6:BGR颜色# 参数7:文字粗细cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);cv2.putText(img, "36.4C", (250, 250), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0), 2);# 显示图像cv2.imshow("title", img);# 进程不结束,一直保持显示状态cv2.waitKey(0);#销毁所有窗口cv2.destroyAllWindows();

关于怎么在python中使用opencv绘制图形就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯