代码 github:/FrozenWhalePP/randomPicture
总览
Voronoi图
Voronoi图又称泰森多边形或者Dirichlet图,由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。具体特点见百度百科。 /item/%E6%B3%B0%E6%A3%AE%E5%A4%9A%E8%BE%B9%E5%BD%A2/3428661?fromtitle=voronoi&fromid=9089406&fr=aladdin基于python
实现,scipy.spatial.Voronoi
图像边缘检测
检测一张图片主题元素的轮廓边界,并提取边界坐标基于python
的opencv-python
中的cv2.findContours()
实现程序文件
random_pic.py
给出一张图片,得到图片中主要元素的边界轮廓。产生N个随机数,使得落在边界内部。根据产生的点,绘制Voronoi图可调整参数: 根据图片是否足够简洁确定边界的精度随机点的数目绘制的图形线条颜色,宽度,透明度图形的长宽比,尺寸等random_pic_color.py
在random_pic.py
的基础上,重写了Voronoi图的绘制函数(参考Stack Overflow上的回答)去线条,使用彩色填充可选参数: 如上填充颜色的透明度注意
图片的边缘检测,轮廓提取算法参考的他人博客,目前精度还有待提升。如果图片元素过多,线条复杂,则效果不佳。建议使用简笔画。random_pic_color.py
目前存在一定BUG,导致KeyValue错误,但是不稳定,失败/成功比例大概为3/1。展示
线条
冰冻鲸鱼运动鞋
红色高跟鞋小王子中的蛇吞象
橘色的花瓶
冰冷的铁塔
迟到的圣诞树
色块填充
运动鞋不一样的埃菲尔铁塔
奇怪的帽子
彩色高跟鞋
彩色鲸鱼
丑丑的圣诞树
改变随机点个数
鲸鱼稀疏裂纹圆
密圆