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通过smpt发送邮件的方法
Apr 30 Python
python使用nntp读取新闻组内容的方法
May 08 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
python构建自定义回调函数详解
Jun 20 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
python Django 创建应用过程图示详解
Jul 29 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
理解AngularJs指令
2015/12/10 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
python实现控制台输出颜色
2021/03/02 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android