用opencv和python实现缓慢画一幅很简单的儿童画的代码
时间: 2023-03-30 11:00:55 浏览: 60
您好,以下是用opencv和python实现缓慢画一幅很简单的儿童画的代码:
```python
import cv2
import numpy as np
# 创建一个黑色的图像
img = np.zeros((512,512,3), np.uint8)
# 画一个蓝色的圆形
cv2.circle(img,(256,256), 100, (255,,), -1)
# 缓慢显示图像
for i in range(1, 255):
alpha = i / 255.
beta = 1. - alpha
dst = cv2.addWeighted(img, alpha, np.zeros(img.shape, img.dtype), , beta)
cv2.imshow('image', dst)
cv2.waitKey(10)
cv2.waitKey()
cv2.destroyAllWindows()
```
希望对您有帮助!
相关问题
利用opencv和python语言实现缓慢画一幅简笔画,要体现绘画的笔迹,要求画的内容包含树,太阳,云朵,小屋和人。请问代码如何实现?
你好,可以使用OpenCV和Python语言实现缓慢画一幅简笔画,代码如下:
```python
import cv2
import numpy as np
# 创建画布
canvas = np.zeros((512, 512, 3), dtype=np.uint8)
# 定义画笔颜色和大小
color = (255, 255, 255)
thickness = 3
# 绘制树
cv2.line(canvas, (200, 400), (200, 300), color, thickness)
cv2.line(canvas, (200, 300), (150, 300), color, thickness)
cv2.line(canvas, (200, 300), (250, 300), color, thickness)
cv2.line(canvas, (200, 250), (175, 250), color, thickness)
cv2.line(canvas, (200, 250), (225, 250), color, thickness)
# 绘制太阳
cv2.circle(canvas, (400, 100), 50, color, thickness)
# 绘制云朵
cv2.ellipse(canvas, (300, 200), (50, 30), , , 360, color, thickness)
cv2.ellipse(canvas, (350, 200), (50, 30), , , 360, color, thickness)
cv2.ellipse(canvas, (325, 170), (50, 30), , , 360, color, thickness)
# 绘制小屋
cv2.rectangle(canvas, (100, 300), (200, 400), color, thickness)
cv2.line(canvas, (100, 300), (150, 250), color, thickness)
cv2.line(canvas, (150, 250), (200, 300), color, thickness)
cv2.rectangle(canvas, (125, 350), (150, 375), color, thickness)
# 绘制人
cv2.circle(canvas, (350, 400), 25, color, thickness)
cv2.line(canvas, (350, 425), (350, 475), color, thickness)
cv2.line(canvas, (350, 450), (325, 425), color, thickness)
cv2.line(canvas, (350, 450), (375, 425), color, thickness)
# 显示画布
cv2.imshow("Canvas", canvas)
cv2.waitKey()
cv2.destroyAllWindows()
```
希望能对你有所帮助。
opencv用python写一个画轮廓外接矩形的代码
好的,以下是Python中使用OpenCV库画轮廓外接矩形的代码示例:
```python
import cv2
# 读取图片
img = cv2.imread('test.jpg')
# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 寻找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 画出轮廓和外接矩形
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.drawContours(img, [contour], 0, (0, 0, 255), 3)
# 显示结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.findContours()`函数用于寻找轮廓,`cv2.boundingRect()`函数用于计算轮廓的外接矩形,`cv2.rectangle()`函数用于画出矩形,`cv2.drawContours()`函数用于画出轮廓。