利用opencv和turtle自动画图
时间: 2023-11-08 07:57:59 浏览: 64
这里提供一个例子,使用opencv和turtle画一个简单的笑脸:
```python
import cv2
import numpy as np
import turtle
# 创建画布和画笔
screen = turtle.Screen()
screen.setup(600, 600)
turtle.penup()
# 读取笑脸图像
img = cv2.imread('smile.png')
# 获取笑脸轮廓
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 定义画图函数
def draw_contour(contour):
turtle.goto(contour[0][0][0]-300, 300-contour[0][0][1])
turtle.pendown()
for point in contour:
x, y = point[0]
turtle.goto(x-300, 300-y)
turtle.penup()
# 画笑脸轮廓
for contour in contours:
draw_contour(contour)
# 画眼睛
turtle.goto(-130, 120)
turtle.dot(30)
turtle.goto(20, 120)
turtle.dot(30)
# 画嘴巴
turtle.goto(-100, 0)
turtle.pendown()
turtle.circle(100, 90)
turtle.circle(100, 90)
# 完成画图
turtle.done()
```
需要注意的是,这里使用了一张名为“smile.png”的笑脸图像作为参考,需要自己先准备好这个图像。另外,使用opencv读取图像时,需要注意颜色通道的顺序,这里使用的是BGR顺序。
阅读全文