-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnir_rgb_merge.py
More file actions
executable file
·40 lines (31 loc) · 1.41 KB
/
nir_rgb_merge.py
File metadata and controls
executable file
·40 lines (31 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from glob import glob
from PIL import Image
from tqdm import tqdm
import multiprocessing
import numpy as np
nir_folder = "/home/prateekjha/anomaly_detection/full_data/Agriculture-Vision-2021/val/images/nir"
rgb_folder = "/home/prateekjha/anomaly_detection/full_data/Agriculture-Vision-2021/val/images/rgb"
rgb_files = glob(f"/home/prateekjha/anomaly_detection/full_data/Agriculture-Vision-2021/val/images/rgb/*")
save_folder = "/home/prateekjha/anomaly_detection/full_data/Agriculture-Vision-2021/val/images/rgb_nir"
rgb_ids = [x.split("/")[-1] for x in rgb_files]
nir_files = [f"{nir_folder}/{idx}" for idx in rgb_ids]
# Define a function to process a single image
def process_image(idx):
nir_image_path = nir_folder + "/" + idx
rgb_image_path = rgb_folder + "/" + idx
nir_image = np.expand_dims(np.array(Image.open(nir_image_path)), 2)
rgb_image = np.array(Image.open(rgb_image_path))
rgb_nir = np.concatenate([rgb_image, nir_image], 2)
im = Image.fromarray(rgb_nir)
idx = idx.replace("jpg", "png")
im.save(f"{save_folder}/{idx}")
if __name__ == "__main__":
# Create a multiprocessing pool
num_processes = multiprocessing.cpu_count()
pool = multiprocessing.Pool(processes=num_processes)
# Use tqdm to add a progress bar
with tqdm(total=len(rgb_ids)) as pbar:
for _ in pool.imap_unordered(process_image, rgb_ids):
pbar.update(1)
pool.close()
pool.join()