Python 生成3D验证码[pic]
我想编写一个Python脚本,生成一个3D,如下所示: 我可以使用哪些图形库Python 生成3D验证码[pic],python,graphics,captcha,Python,Graphics,Captcha,我想编写一个Python脚本,生成一个3D,如下所示: 我可以使用哪些图形库 资料来源:我不确定我是否会为你上面所拥有的全部3D库而烦恼。只需生成一个3D点矩阵,用类似PIL的东西生成文本,在上面扫描,找出网格上哪些点是凸起的,选择一个随机的相机角度,然后将这些点投影到2D图像中,并用PIL将它们绘制到最终图像中 话虽如此。。。如果您不想自己进行3D计算,您可以使用。使用用于OpenGL的Python绑定 使用在黑色表面上创建白色文本的二维图像。 从这里做一个3D网格,增加颜色为白色的点的z,
资料来源:我不确定我是否会为你上面所拥有的全部3D库而烦恼。只需生成一个3D点矩阵,用类似PIL的东西生成文本,在上面扫描,找出网格上哪些点是凸起的,选择一个随机的相机角度,然后将这些点投影到2D图像中,并用PIL将它们绘制到最终图像中
话虽如此。。。如果您不想自己进行3D计算,您可以使用。使用用于OpenGL的Python绑定 使用在黑色表面上创建白色文本的二维图像。 从这里做一个3D网格,增加颜色为白色的点的z, 可以设置z=颜色值,这样通过模糊图像,可以获得z方向上的真实曲线 从这些点创建OpenGL三角形,渲染时使用线框模式 例如,将OpenGL缓冲区抓取到图像中,
< P>另一个考虑用OpenGL渲染的绑定是。它最大的特点是只需一次下载。我认为它包含了实现Anurag阐明的内容所需的一切
我要提醒你,你要做的并不是一个简单的3d图形第一个项目。如果这是您第一次接触OpenGL,请考虑一系列教程和其他帮助。 < P>有很多方法。我个人会使用的draw.text在Python图像库中创建图像,转换为数组(usint NumPy),然后使用渲染。(需要Matplotlib) 完整代码(在2.5中):
显然还有一点工作要做,消除轴,改变视角等等。还有一个问题:3d验证码比ocr难吗?难多了。阅读“来源”了解更多信息。哦,不,真的有人叫它茶包吗?是的。他们实际上是把这个卖给大公司。我如何“生成一个3d Pont矩阵”?那只是一个元组列表-每个元组有3个数字-代表x、y和z。罗伯托:如果事先没有3d图形方面的知识,我想在你尝试这个之前需要大量阅读。是的,我想说的是,你需要实现整个矩阵操作或向量旋转。我不懂3D图形,但我有很多线性代数知识。如果有足够的动力,我很愿意自己做这件事;)非常非常好。正是我想要的。谢谢!(我注销了,所以我不能投票给你答案:()。取决于在我的浏览器屏幕上看到的位置,图像上的灰色网格线消失了。
import numpy, pylab
from PIL import Image, ImageDraw, ImageFont
import matplotlib.axes3d as axes3d
sz = (50,30)
img = Image.new('L', sz, 255)
drw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 20)
drw.text((5,3), 'text', font=font)
img.save('c:/test.png')
X , Y = numpy.meshgrid(range(sz[0]),range(sz[1]))
Z = 1-numpy.asarray(img)/255
fig = pylab.figure()
ax = axes3d.Axes3D(fig)
ax.plot_wireframe(X, -Y, Z, rstride=1, cstride=1)
ax.set_zlim((0,50))
fig.savefig('c:/test2.png')