大家好,我是阿萨。测试过程中经常用到需要测试图片的地方。每次找不同的图片费时费力。所以就萌生了自己造测试数据的想法,因为最近一直用python 就在网上查看了python生成随机 图片的例子。 先讲一个失败的例子。
python随机生成图片
#-*-coding:utf-8-*- import tensorflow as tf import numpy as np import cv2 image = tf.random.uniform([200, 200, 3],minval=1,maxval=255, dtype=tf.int32) with tf.Session()as sess: myImage=sess.run(image) print(myImage) cv2.imwrite("test.jpg", myImage)
结果啥都没有。这个具体问题分析还有点困难。因为时间关系,先不研究它失败的根因,等有时间了再详细分析下。各位如果有能发现问题的,也请私信告诉我。谢谢大家。
那就再找找看有没有其他简单方便的图片生成代码呢?
发挥搜索引擎的巨大优势。 发现PIL. Image是个好东西,可以打开,保存以及生成图片。并且可以生成纯色的图片。不像上面的随机生成的花里胡哨的噪音图片。觉得这个有戏。
先看了下这个库比较简单的功能。
open 打开图片
rotate 旋转图片
thumbnail 生成需要大小的缩略图
blend 通过常量alpha在两个图像之间插入来创建新图像。
new 创建具有给定模式和大小的新图像。
fromarray 从导出数组接口的对象(使用缓冲区协议)创建图像内存。
from bytes从缓冲区中的像素数据创建图像内存的副本。
copy复制此图像。
crop 返回图像中的矩形区域。框是定义左,上,右和下像素坐标的四元祖。
show 显示此图片。主要用于调试。
save在给定文件名下保存此图像
方法太多了……大家感兴趣的自己查找资料学习下。
重点看下这次我用的代码。
def generateImage(imageCount, imagePath): COLORLIST = ['blue', 'green', 'purple', 'yellow', 'red', 'pink', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'brown', 'beige', 'chocolate', 'gold', 'Lavender', 'maroon', 'Lightskyblue', 'orange', 'violet', 'lavender', 'white', 'ivory', 'gray', 'wheat', 'WhiteSmoke', 'yellowgreen', 'beige', 'lightpink', 'cyan', 'khaki', 'grey', 'navy', 'plum', 'powderblue', 'rosybrown'] for iin range(imageCount): img = Image.new('RGBA', (640, 480), COLORLIST[i]) img.save(imagePath +'/' + COLORLIST[i] +'.png') return True
生成5张照片的截图如下:
目标达成。