代码
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