Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hackassin
GitHub Repository: hackassin/learnopencv
Path: blob/master/ExposureFusion/exposureFusion.py
3118 views
1
import cv2
2
import numpy as np
3
import sys
4
5
6
def readImagesAndTimes():
7
8
filenames = [
9
"images/memorial0061.jpg",
10
"images/memorial0062.jpg",
11
"images/memorial0063.jpg",
12
"images/memorial0064.jpg",
13
"images/memorial0065.jpg",
14
"images/memorial0066.jpg",
15
"images/memorial0067.jpg",
16
"images/memorial0068.jpg",
17
"images/memorial0069.jpg",
18
"images/memorial0070.jpg",
19
"images/memorial0071.jpg",
20
"images/memorial0072.jpg",
21
"images/memorial0073.jpg",
22
"images/memorial0074.jpg",
23
"images/memorial0075.jpg",
24
"images/memorial0076.jpg"
25
]
26
27
images = []
28
for filename in filenames:
29
im = cv2.imread(filename)
30
images.append(im)
31
32
return images
33
34
if __name__ == '__main__':
35
36
# Read images
37
print("Reading images ... ")
38
39
if len(sys.argv) > 1:
40
# Read images from the command line
41
images = []
42
for filename in sys.argv[1:]:
43
im = cv2.imread(filename)
44
images.append(im)
45
needsAlignment = False
46
else :
47
# Read example images
48
images = readImagesAndTimes()
49
needsAlignment = False
50
51
# Align input images
52
if needsAlignment:
53
print("Aligning images ... ")
54
alignMTB = cv2.createAlignMTB()
55
alignMTB.process(images, images)
56
else :
57
print("Skipping alignment ... ")
58
59
# Merge using Exposure Fusion
60
print("Merging using Exposure Fusion ... ");
61
mergeMertens = cv2.createMergeMertens()
62
exposureFusion = mergeMertens.process(images)
63
64
# Save output image
65
print("Saving output ... exposure-fusion.jpg")
66
cv2.imwrite("exposure-fusion.jpg", exposureFusion * 255)
67
68
69
70