Python填充任意颜色,不同算法时间差异分析说明


Posted in Python onMay 16, 2020

我就废话不多说了,大家还是直接看代码吧!

import time
import numpy as np
import cv2
 
#方法一
start = time.time() 
for i in range(1000):
 canvas = np.zeros((1080,1920,3), np.uint8) 
 canvas[:,:,0] = 113
 canvas[:,:,1] = 207
 canvas[:,:,2] = 250
end = time.time()
print ("方法一(切片赋值)时间:",end-start)
cv2.imwrite("test1.png",canvas)
 
#方法二
start = time.time() 
for i in range(1000):
 canvas = np.zeros((1080,1920,3), np.uint8) 
 cv2.rectangle(canvas, (0, 0), (1920, 1080), (113,207,250), thickness=-1)
end = time.time()
print ("方法二(Opencv颜色填充)时间:",end-start)
cv2.imwrite("test2.png",canvas)
 
#方法三
start = time.time() 
for i in range(1000):
 canvas = np.ones([1080,1920,3])*[113,207,250]
end = time.time()
print ("方法三(矩阵乘法)时间:",end-start)
cv2.imwrite("test3.png",canvas)
 
 
# #方法四
start = time.time() 
for i in range(1000):
 canvas = np.zeros((1080,1920,3), np.uint8) 
 for i in range(1080):
  for j in range(1920):
   canvas[i][j] = [113,207,250]
end = time.time()
print ("方法四(循环遍历赋值)时间:",end-start)
cv2.imwrite("test4.png",canvas)

结果

方法一(切片赋值)时间: 6.554100275039673

方法二(Opencv颜色填充)时间: 3.6737191677093506

方法三(矩阵乘法)时间: 74.28376317024231

方法四(循环遍历赋值)时间: 3245.07548809051504

补充知识:规则多边形颜色填充(Python)

以规则八边型为例:

import matplotlib.pyplot as plt
import numpy as np

# 设置八边形顶点坐标
x = [0, 0, 5, 10, 15, 15, 10, 5]
y = [5, 10, 15, 15, 10, 5, 0, 0]

# 通过调用 fill() 函数 完成绘制八边形
# 参数 x 和 y 是用来绘制封闭区域顶点的有序坐标集
# 参数 color 用来指定封闭区域的填充颜色
plt.fill(x, y, color="green")

# 为了可视化效果更好,使用函数 xlim() 和 ylim() 完成多边型在整个坐标轴中的相对位置调整(可自行删除对比效果)
plt.xlim(-1, 17)
plt.ylim(-1, 17)

# 使用 xticks() 和 yticks() 调整刻度线的显示位置
# np.arange(起始坐标,结束坐标,坐标间隔)
plt.xticks(np.arange(0, 16, 5))
plt.yticks(np.arange(0, 16, 5))

# 调用 show() 函数展示图形的绘制效果
plt.show()

Python填充任意颜色,不同算法时间差异分析说明

以上这篇Python填充任意颜色,不同算法时间差异分析说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python二分查找详解
Sep 13 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python查看微信撤回消息代码
Jun 07 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python与字符编码问题
May 24 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
python中的线程threading.Thread()使用详解
Dec 17 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
PYcharm 激活方法(推荐)
Mar 23 Python
Python语言编写智力问答小游戏功能
Oct 13 Python
解决echarts中饼图标签重叠的问题
May 16 #Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 #Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 #Python
Python如何使用PIL Image制作GIF图片
May 16 #Python
pyecharts调整图例与各板块的位置间距实例
May 16 #Python
通过Python实现一个简单的html页面
May 16 #Python
Python批量处理csv并保存过程解析
May 16 #Python
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php生成html文件方法总结
2014/12/01 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python图片验证码生成代码
2016/07/02 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python 消费 kafka 数据教程
2019/12/21 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
希特勒的演讲稿
2014/05/23 职场文书
城市创卫标语
2014/06/17 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
广播体操比赛主持词
2015/06/29 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书