Python填充任意顏色,不同算法時(shí)間差異分析說明
我就廢話不多說了,大家還是直接看代碼吧!
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 ("方法一(切片賦值)時(shí)間:",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顏色填充)時(shí)間:",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 ("方法三(矩陣乘法)時(shí)間:",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 ("方法四(循環(huán)遍歷賦值)時(shí)間:",end-start) cv2.imwrite("test4.png",canvas)
結(jié)果
方法一(切片賦值)時(shí)間: 6.554100275039673
方法二(Opencv顏色填充)時(shí)間: 3.6737191677093506
方法三(矩陣乘法)時(shí)間: 74.28376317024231
方法四(循環(huán)遍歷賦值)時(shí)間: 3245.07548809051504
補(bǔ)充知識(shí):規(guī)則多邊形顏色填充(Python)
以規(guī)則八邊型為例: import matplotlib.pyplot as plt import numpy as np # 設(shè)置八邊形頂點(diǎn)坐標(biāo) x = [0, 0, 5, 10, 15, 15, 10, 5] y = [5, 10, 15, 15, 10, 5, 0, 0] # 通過調(diào)用 fill() 函數(shù) 完成繪制八邊形 # 參數(shù) x 和 y 是用來繪制封閉區(qū)域頂點(diǎn)的有序坐標(biāo)集 # 參數(shù) color 用來指定封閉區(qū)域的填充顏色 plt.fill(x, y, color="green") # 為了可視化效果更好,使用函數(shù) xlim() 和 ylim() 完成多邊型在整個(gè)坐標(biāo)軸中的相對(duì)位置調(diào)整(可自行刪除對(duì)比效果) plt.xlim(-1, 17) plt.ylim(-1, 17) # 使用 xticks() 和 yticks() 調(diào)整刻度線的顯示位置 # np.arange(起始坐標(biāo),結(jié)束坐標(biāo),坐標(biāo)間隔) plt.xticks(np.arange(0, 16, 5)) plt.yticks(np.arange(0, 16, 5)) # 調(diào)用 show() 函數(shù)展示圖形的繪制效果 plt.show()
以上這篇Python填充任意顏色,不同算法時(shí)間差異分析說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法,Python提供了許多工具和庫來進(jìn)行這些任務(wù),本文通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06使用python自動(dòng)追蹤你的快遞(物流推送郵箱)
本文講解如何讓 python自動(dòng)為你查詢快遞信息 ,并在物流發(fā)生更新或者到達(dá)指定地點(diǎn)時(shí)第一時(shí)間將 物流推送至你的郵箱,本文通過實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-03-03Django 后臺(tái)獲取文件列表 InMemoryUploadedFile的例子
今天小編就為大家分享一篇Django 后臺(tái)獲取文件列表 InMemoryUploadedFile的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08一篇文章帶你學(xué)習(xí)Python3的高級(jí)特性(2)
這篇文章主要為大家詳細(xì)介紹了Python3的高階函數(shù),主要介紹什么是高級(jí)特性,高級(jí)特性的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Python實(shí)現(xiàn)字典按照value進(jìn)行排序的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)字典按照value進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python字典按照value進(jìn)行排序的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過程解析
這篇文章主要介紹了使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07PyCharm鼠標(biāo)右鍵不顯示Run unittest的解決方法
今天小編就為大家分享一篇PyCharm鼠標(biāo)右鍵不顯示Run unittest的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python sklearn庫實(shí)現(xiàn)PCA教程(以鳶尾花分類為例)
今天小編就為大家分享一篇Python sklearn庫實(shí)現(xiàn)PCA教程(以鳶尾花分類為例),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02