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

计算机视觉应用构建

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

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

代码

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.显示处理后的图像,并等待用户按键后关闭窗口

小结

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

相关推荐
开开心心_Every1 小时前
带OCR识别的电子发票打印工具
运维·自动化·ocr·电脑·powerpoint·音视频·lua
love530love2 小时前
AI Agent + 本地 ComfyUI 无头模式实战:关闭 IDE 后 AI 独立重启并完成图文生成
ide·人工智能·windows·python·音视频·agent·devops
西安老张(AIGC&ComfyUI)20 小时前
第021章:ComfyUI文生音频Qwen3-TTS模型数字人音色设计(一)
aigc·音视频·数字人·comfyui
小殊小殊20 小时前
一文速通GPU版FFmpeg视频转码的安装使用
ffmpeg·音视频·视频编解码
美狐美颜SDK开放平台21 小时前
直播APP平台开发如何降低成本?视频美颜SDK方案解析
人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk·美颜api
luoyayun36121 小时前
Qt/QML音视频文件原始十六进制查看器
qt·音视频·十六进制查看
火山引擎边缘云1 天前
让 Agent 成为音视频工作台:AI MediaKit CLI + Skill 发布
人工智能·音视频·火山引擎
阿拉斯攀登1 天前
视频编解码(二):H.264 是怎么把 10GB 压成 100MB 的?
音视频·视频编解码·h.264
小鹿软件办公1 天前
如何利用 Mac 自带 iMovie 裁剪去除视频 Logo 或文字水印
macos·音视频·视频去水印·简鹿水印助手