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实现给文件添加内容及得到文件信息的方法
May 28 Python
Python 序列的方法总结
Oct 18 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
python读出当前时间精度到秒的代码
Jul 05 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
Django中create和save方法的不同
Aug 13 Python
Python socket模块方法实现详解
Nov 05 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
python中把元组转换为namedtuple方法
Dec 09 Python
Python面试不修改数组找出重复的数字
May 20 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年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
php 模拟POST|GET操作实现代码
2010/07/20 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
php排序算法实例分析
2016/10/17 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
js简易版购物车功能
2017/06/17 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Python随机数random模块使用指南
2016/09/09 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python实现宿舍管理系统
2019/11/22 Python
python 追踪except信息方式
2020/04/25 Python
浅析Python中字符串的intern机制
2020/10/03 Python
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
应用化学专业职业生涯规划书
2014/01/22 职场文书
手机被没收检讨书
2014/02/22 职场文书
销售员自我评价
2015/03/11 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
酒桌上的开场白
2015/06/01 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记