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 相关文章推荐
Python 字符串定义
Sep 25 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
python django model联合主键的例子
Aug 06 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
Python while true实现爬虫定时任务
Jun 08 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
Python调用jar包方法实现过程解析
Aug 11 Python
Django celery异步任务实现代码示例
Nov 26 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Pycharm 设置默认头的图文教程
2019/01/17 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
python通过http下载文件的方法详解
2019/07/26 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
后勤部长岗位职责
2013/12/14 职场文书
面试后的英文感谢信
2014/02/01 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
Golang 实现WebSockets
2022/04/24 Golang