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 paramiko实现ssh远程访问的方法
Dec 03 Python
python的即时标记项目练习笔记
Sep 18 Python
使用graphics.py实现2048小游戏
Mar 10 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
python中的lambda表达式用法详解
Jun 22 Python
用python与文件进行交互的方法
Mar 01 Python
python实现连续图文识别
Dec 18 Python
详解Python self 参数
Aug 30 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
Python Django框架模板渲染功能示例
Nov 08 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 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+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python django集成cas验证系统
2014/07/14 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
Python变量和数据类型详解
2017/02/15 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python二元算术运算常用方法解析
2020/09/15 Python
Linux上比较文件的命令都有哪些
2013/09/28 面试题
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
经销商订货会主持词
2014/03/27 职场文书
社团活动总结书
2014/06/27 职场文书
档案工作汇报材料
2014/08/21 职场文书
推销搭讪开场白
2015/05/28 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js