1. 程式人生 > 程式設計 >Python填充任意顏色,不同演算法時間差異分析說明

Python填充任意顏色,不同演算法時間差異分析說明

我就廢話不多說了,大家還是直接看程式碼吧!

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,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,3])*[113,250]
end = time.time()
print ("方法三(矩陣乘法)時間:",end-start)
cv2.imwrite("test3.png",canvas)
 
 
# #方法四
start = time.time() 
for i in range(1000):
 canvas = np.zeros((1080,np.uint8) 
 for i in range(1080):
  for j in range(1920):
   canvas[i][j] = [113,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,5,10,15,5]
y = [5,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,5))

# 呼叫 show() 函式展示圖形的繪製效果
plt.show()

Python填充任意顏色,不同演算法時間差異分析說明

以上這篇Python填充任意顏色,不同演算法時間差異分析說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。