Skip to content

Instantly share code, notes, and snippets.

@Casxt
Created December 10, 2018 06:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Casxt/3263ddc03f14b98594b78446264ee3f1 to your computer and use it in GitHub Desktop.
Save Casxt/3263ddc03f14b98594b78446264ee3f1 to your computer and use it in GitHub Desktop.
Pillow & skimage & OpenCV image encode benchmark
import numpy
from skimage import io
import time
from PIL import Image
import cv2
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from config import projectPath
img = io.imread(f"{projectPath}/temp/fullimg.jpg")
now = time.time()
for i in range(20):
io.imsave(f"{projectPath}/temp/skimg.jpg", img)
print(f"{i} loop analysis.")
print(f"use {(time.time() - now) / 20}s per encode.")
image = Image.open(f"{projectPath}/temp/fullimg.jpg")
now = time.time()
for i in range(20):
with open(f"{projectPath}/temp/skimg.jpg", "wb") as tempImg:
image.save(tempImg, format='jpeg')
print(f"{i} loop analysis.")
print(f"use {(time.time() - now) / 20}s per encode.")
opencvImage = cv2.cvtColor(numpy.array(image), cv2.COLOR_RGB2BGR)
now = time.time()
for i in range(20):
cv2.imwrite('messigray.jpg', opencvImage)
print(f"{i} loop analysis.")
print(f"use {(time.time() - now) / 20}s per encode.")
0 loop analysis.
1 loop analysis.
2 loop analysis.
3 loop analysis.
4 loop analysis.
5 loop analysis.
6 loop analysis.
7 loop analysis.
8 loop analysis.
9 loop analysis.
10 loop analysis.
11 loop analysis.
12 loop analysis.
13 loop analysis.
14 loop analysis.
15 loop analysis.
16 loop analysis.
17 loop analysis.
18 loop analysis.
19 loop analysis.
use 0.29269862174987793s per encode.
0 loop analysis.
1 loop analysis.
2 loop analysis.
3 loop analysis.
4 loop analysis.
5 loop analysis.
6 loop analysis.
7 loop analysis.
8 loop analysis.
9 loop analysis.
10 loop analysis.
11 loop analysis.
12 loop analysis.
13 loop analysis.
14 loop analysis.
15 loop analysis.
16 loop analysis.
17 loop analysis.
18 loop analysis.
19 loop analysis.
use 0.1573304533958435s per encode.
0 loop analysis.
1 loop analysis.
2 loop analysis.
3 loop analysis.
4 loop analysis.
5 loop analysis.
6 loop analysis.
7 loop analysis.
8 loop analysis.
9 loop analysis.
10 loop analysis.
11 loop analysis.
12 loop analysis.
13 loop analysis.
14 loop analysis.
15 loop analysis.
16 loop analysis.
17 loop analysis.
18 loop analysis.
19 loop analysis.
use 0.03837261199951172s per encode.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment