opencv+turtle自动绘图

turtle是python的一个很好玩的自动绘图工具。然而,用它来画一幅画需要提供大量的坐标点。有的人为了用它画出一幅好看的画不惜去手工计算图片线稿的描点的位置。心疼一秒。
其实我们完全可以用计算机图像识别来自动获取图片边缘的位置坐标,比如Opencv。
我们先直接上python的opencv一个基本案例。

import cv2
img = cv2.imread("E:/User/Desktop/psb.png")#读取一张图片
cv2.imshow("窗口标题",img)#在一个窗口显示图片

cv2.imread()是读取一个图像文件,然后将图像的像素信息转化成一个numpy矩阵,并返回
cv2.imshow()则是读取一个numpy矩阵信息,将其作为像素信息在新窗口中打印出来。
ok,读取图片工作完成了,那我们现在来获取图片的边缘信息

point=cv2.Canny(img, 000, 200)

这是边缘检测函数,将img图像的边缘像素信息作为numpy矩阵返回,里面的0和200这个参数是阈值范围参数,可自行调节。
虽然得到了边缘位置的信息,但这个矩阵信息却是显示的图像的矩阵的旋转矩阵。因此我们还需要对所得矩阵进行旋转,否则可能会得到倒过来的图像。

import numpy
point=numpy.rot90(black,k=3)

numpy.rot90()这个函数是矩阵顺时针旋转90度的函数,k代表旋转的次数,经过我的测试,要旋转3次才矫正(也就是逆时针一次)。
得到绘图点的像素信息后,我们开始用turtle进行绘图

import turtle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值