Python填充任意顏色,不同算法時(shí)間差異分析說明
我就廢話不多說了,大家還是直接看代碼吧!
import timeimport numpy as npimport 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] = 250end = 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 pltimport 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)軸中的相對位置調(diào)整(可自行刪除對比效果)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è)參考,也希望大家多多支持好吧啦網(wǎng)。
