看代码,有详细的注释 import cv2 import numpy as np import random import time import math #这是图片的大小 sx = 1000 sy = 1200 #窗口函数 def show(img, name = "haigen",time = 10): # cv2.namedWindow(name, cv2.WINDOW_NORMAL) cv2.imshow(name,img) cv2.waitKey(time) #画星星 def star(fi): #根据fi的大小来画星星的个数 while f 在OpenCV项目中进行画图涉及到了多个计算机视觉与图像处理相关的知识点,下面将详细解释这些概念和技术。 OpenCV(开源计算机视觉库)是一个跨平台的库,用于处理和分析图像数据,广泛应用于图像处理、计算机视觉以及机器学习等领域。在本项目中,主要用到的是其图像绘制功能。 1. 图像窗口与显示: 在代码中,`show` 函数用于显示图像。`cv2.imshow()` 函数用于创建或更新一个窗口并显示图像,而`cv2.waitKey()` 函数则会暂停程序执行,等待用户按键。`cv2.namedWindow()` 函数用于创建窗口,虽然在注释中被注释掉了,但在实际应用中,这一步是必要的,用于指定窗口的名称和类型。 2. 画星星: `star` 函数用于在图像上绘制随机分布的星星。`cv2.circle()` 函数在此处用来画圆,即星星的形状。它接受中心坐标、半径、颜色和线宽作为参数。通过随机函数,我们可以控制星星的位置、大小和数量。 3. 闪烁的星星: `ran_star` 函数实现了星星闪烁的效果。通过创建一个包含星星位置和大小的列表,先绘制星星,然后短暂等待后用黑色覆盖,从而实现闪烁。这里利用了`cv2.waitKey()` 的时间参数来控制闪烁间隔。 4. 画树: `tree` 函数是一个递归函数,用于绘制分形树。它接受当前分支的层数、长度、当前位置、末端坐标以及偏转角度作为参数。在分支末端,通过随机调整角度,分别绘制左右两个子分支,模拟树枝生长的自然形态。如果层数达到一定值,会在分支末梢画出小圆圈,代表花朵。 5. 画花: `flower` 和 `ran_flower` 函数用于在图像中添加静态和动态的花朵。`flower` 创建一个花朵列表,每个元素包含花朵的位置和原始像素块,方便后续动画处理。`ran_flower` 则用于生成动态花朵,它们会在屏幕中向上移动,模拟飞舞的效果。 6. 图像操作: 在整个项目中,使用了`numpy`库进行矩阵运算,因为OpenCV中的图像以NumPy数组的形式存储。例如,复制和保存花朵的原始像素块,以及在图像上绘制圆形等操作。 这个OpenCV项目展示了如何使用Python和OpenCV库创建动态的图像效果,包括画星星、树、花朵等元素,体现了OpenCV在图形生成和动画制作上的应用。通过理解和实践这些代码,可以深入理解OpenCV的基本操作和图像处理技巧,为进一步的计算机视觉项目打下基础。
- 粉丝: 2
- 资源: 958
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0