图像和视频处理的核心概念(在新画布上画圆形并保存图像)

计算机视觉应用构建

图像和视频处理的核心概念

在新画布上画圆形并保存图像

代码

python 复制代码
# 从 __future__ 模块导入 print_function,使 Python 2 也能使用 Python 3 的 print 函数语法
# 这确保了代码在不同 Python 版本间的兼容性
from __future__ import print_function

# 导入 OpenCV 库,用于图像处理和计算机视觉操作
import cv2

# 导入 NumPy 库,用于创建和操作多维数组
# OpenCV 中的图像本质上就是 NumPy 数组
import numpy as np

# 使用 np.zeros() 函数创建一个新的空白画布(图像)
# 参数 (200, 200, 3) 表示:高度 200 像素、宽度 200 像素、3 个颜色通道(BGR)
# dtype = "uint8" 指定数据类型为无符号 8 位整数(范围 0-255),这是图像像素的标准类型
# 所有像素值初始化为 0,因此画布为纯黑色
canvas = np.zeros((200, 200, 3), dtype="uint8")

# 定义圆心的坐标 (x, y)
# (100, 100) 表示画布的正中心位置
# 因为画布尺寸为 200x200,所以中心点位于宽度和高度的中间
center = (100, 100)

# 定义圆的半径,单位为像素
# 半径为 50 像素,因此圆的直径将是 100 像素
radius = 50

# 设置圆的颜色,使用 BGR(蓝-绿-红)颜色空间
# (0, 0, 255) 表示纯红色(蓝色和绿色分量为0,红色分量为最大值255)
color = (0, 0, 255)

# 设置圆边框的粗细,单位为像素
# 数值越大,边框越粗;如果 thickness = -1,则填充圆内部(实心圆)
thickness = 5

# 使用 cv2.circle() 函数在画布上绘制圆形
# 参数依次为:图像对象、圆心坐标、半径、颜色、边框粗细
# 该函数会在原图像上直接修改(原地操作),不会创建新图像
cv2.circle(canvas, center, radius, color, thickness)

# 使用 cv2.imwrite() 函数将绘制好的圆形图像保存到磁盘
# 第一个参数是保存的文件名 "circle.jpg",第二个参数是要保存的图像数据
# 图像格式会根据文件扩展名自动确定(此处为 JPG 格式)
# 保存成功返回 True,失败返回 False
cv2.imwrite("circle.jpg", canvas)

# 使用 cv2.imshow() 函数在窗口中显示绘制的圆形图像
# 第一个参数是窗口标题 "My Circle",第二个参数是要显示的图像数据
cv2.imshow("My Circle", canvas)

# 使用 cv2.waitKey(0) 等待用户按键操作
# 参数 0 表示无限期等待,直到用户按下任意键为止
# 这是必要的,否则图像窗口会立即关闭而无法显示
cv2.waitKey(0)

结果

这段代码演示了如何使用 OpenCV 和 NumPy 从头创建图像并绘制几何图形:

1.使用 NumPy 创建一个 200x200 的纯黑色画布(3通道 BGR 图像)

2.在画布中心绘制一个半径为 50 像素的红色圆形(边框粗细为 5 像素)

3.将绘制好的圆形图像保存为 "circle.jpg" 文件

4.显示处理后的图像,并等待用户按键后关闭窗口

小结

文章仅供参考,有错处欢迎评论区补充参考,文章作为本人学习回溯使用,不会再多参与,再此共勉。

相关推荐
熬夜磕代码丶15 小时前
RN鸿蒙空间音频实战
华为·音视频·harmonyos
一条破秋裤2 天前
【V4L2采集视频】
音视频
橙橙笔记3 天前
QT的学习第四部分
linux·qt·学习·音视频
AI视频工具指南3 天前
用 AI 能做哪些视频?按想交付的作品选做法
人工智能·aigc·音视频
希和20274 天前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频
謓泽4 天前
【插件】用写网页的方式做视频?HyperFrames 让我重新理解了“做视频“这件事!
gpt·ai·大模型·音视频·媒体·claude·视频
无忧_wy4 天前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
联犀5 天前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
9527华安5 天前
FPGA纯verilog实现DP视频接口,支持2K60帧分辨率,提供3套工程源码和技术支持
fpga开发·音视频·dp
MetaEnchanter6 天前
视频章节怎么整理:填好时间点,导出前检查这几处
音视频