Skip to content

Commit a3af8c5

Browse files
author
ga62moj
committed
dataset creation
1 parent 55a57c9 commit a3af8c5

File tree

2 files changed

+180
-1
lines changed

2 files changed

+180
-1
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ venv/*
99
models/*
1010
data.zip
1111
runs/*
12-
deep_adversarial_network/weights/*
12+
deep_adversarial_network/weights/*
13+
voc/*
14+
msrc/*

dataset_creation.py

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
import numpy as np
2+
import os
3+
import cv2
4+
5+
6+
def generate_masks():
7+
"""
8+
:return:
9+
"""
10+
base_path = 'voc/'
11+
12+
for img_path in sorted(os.listdir(base_path)):
13+
img = cv2.imread(base_path + '/' + img_path, 2)
14+
ret, bw_img = cv2.threshold(src=img, thresh=0, maxval=255, type=cv2.THRESH_BINARY)
15+
cv2.imwrite('voc_masks/' + img_path.split(".")[0] + '_cp.png', bw_img)
16+
17+
18+
def copy_images_of_mask():
19+
"""
20+
:return:
21+
"""
22+
base_path = 'voc/masks/'
23+
jpg_path = 'voc/JPEGImages/'
24+
gt_path = 'voc/gt/'
25+
26+
for img_path in sorted(os.listdir(base_path)):
27+
img_name = img_path.split("_cp")[0]
28+
img = cv2.imread(jpg_path + '/' + img_name + '.jpg')
29+
cv2.imwrite(gt_path + '/' + img_name + '.png', img)
30+
31+
32+
def create_msrc_mask():
33+
base_path = 'msrc/masks/'
34+
mask_path = 'msrc/mask_new/'
35+
for img_path in sorted(os.listdir(base_path)):
36+
img = cv2.imread(base_path + '/' + img_path)
37+
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
38+
39+
# green (grass) to black
40+
# lower = (0, 128, 0) # lower bound for each channel
41+
# upper = (0, 128, 0) # upper bound for each channel
42+
# mask = cv2.inRange(img, lower, upper)
43+
44+
# cow (blue) to white
45+
# lower = (0, 0, 128) # lower bound for each channel
46+
# upper = (0, 0, 128) # upper bound for each channel
47+
# mask = cv2.inRange(img, lower, upper)
48+
49+
# sheep (sky blue) to white
50+
# lower = (0, 128, 128) # lower bound for each channel
51+
# upper = (0, 128, 128) # upper bound for each channel
52+
# mask = cv2.inRange(img, lower, upper)
53+
54+
# water to black
55+
# lower = (64, 128, 0) # lower bound for each channel
56+
# upper = (64, 128, 0) # upper bound for each channel
57+
# mask = cv2.inRange(img, lower, upper)
58+
59+
# sky to black
60+
# lower = (128, 128, 128) # lower bound for each channel
61+
# upper = (128, 128, 128) # upper bound for each channel
62+
# mask = cv2.inRange(img, lower, upper)
63+
64+
# building to white
65+
# lower = (128, 0, 0) # lower bound for each channel
66+
# upper = (128, 0, 0) # upper bound for each channel
67+
# mask = cv2.inRange(img, lower, upper)
68+
69+
# horse to white
70+
# lower = (128, 0, 128) # lower bound for each channel
71+
# upper = (128, 0, 128) # upper bound for each channel
72+
# mask = cv2.inRange(img, lower, upper)
73+
74+
# aeroplane to white
75+
# lower = (192, 0, 0) # lower bound for each channel
76+
# upper = (192, 0, 0) # upper bound for each channel
77+
# mask = cv2.inRange(img, lower, upper)
78+
79+
# car to white
80+
# lower = (64, 0, 128) # lower bound for each channel
81+
# upper = (64, 0, 128) # upper bound for each channel
82+
# mask = cv2.inRange(img, lower, upper)
83+
84+
# animal to white
85+
# lower = (64, 128, 64) # lower bound for each channel
86+
# upper = (64, 128, 64) # upper bound for each channel
87+
# mask = cv2.inRange(img, lower, upper)
88+
89+
#
90+
lower = (64, 128, 64) # lower bound for each channel
91+
upper = (64, 128, 64) # upper bound for each channel
92+
mask = cv2.inRange(img, lower, upper)
93+
94+
img[mask != 0] = [0, 0, 0] # Black
95+
# img[mask != 0] = [255, 255, 255] # White
96+
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
97+
cv2.imwrite(mask_path + '/' + img_path.split(".")[0] + '.png', img)
98+
99+
def count_unique_colors():
100+
base_path = 'msrc/gt/'
101+
102+
for img_path in sorted(os.listdir(base_path)):
103+
# img_path = '8_28_s_GT.png'
104+
img = cv2.imread(base_path + '/' + img_path)
105+
#img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
106+
#unique, counts = np.unique(img.reshape(-1, img.shape[-1]), axis=0, return_counts=True)
107+
# print(unique)
108+
# print(counts)
109+
110+
# lower = (255, 255, 255) # lower bound for each channel
111+
# upper = (255, 255, 255) # upper bound for each channel
112+
# mask = cv2.inRange(img, lower, upper)
113+
# img[mask != 0] = [0, 0, 0] # Black
114+
115+
# green
116+
# lower = (0, 128, 0) # lower bound for each channel
117+
# upper = (0, 128, 0) # upper bound for each channel
118+
# mask = cv2.inRange(img, lower, upper)
119+
# img[mask != 0] = [0, 0, 0] # White
120+
121+
# flower
122+
# lower = (64, 128, 128) # lower bound for each channel
123+
# upper = (64, 128, 128) # upper bound for each channel
124+
# mask = cv2.inRange(img, lower, upper)
125+
# img[mask != 0] = [255, 255, 255] # White
126+
127+
# purple
128+
# lower = (128, 64, 128) # lower bound for each channel
129+
# upper = (128, 64, 128) # upper bound for each channel
130+
# mask = cv2.inRange(img, lower, upper)
131+
# img[mask != 0] = [0, 0, 0] # Black
132+
#
133+
# # tree
134+
# lower = (128, 128, 0) # lower bound for each channel
135+
# upper = (128, 128, 0) # upper bound for each channel
136+
# mask = cv2.inRange(img, lower, upper)
137+
# img[mask != 0] = [255, 255, 255] # Black
138+
#
139+
# human face
140+
# lower = (64, 64, 0) # lower bound for each channel
141+
# upper = (64, 64, 0) # upper bound for each channel
142+
# mask = cv2.inRange(img, lower, upper)
143+
# img[mask != 0] = [255, 255, 255] # White
144+
145+
# human body
146+
# lower = (192, 128, 0) # lower bound for each channel
147+
# upper = (192, 128, 0) # upper bound for each channel
148+
# mask = cv2.inRange(img, lower, upper)
149+
# img[mask != 0] = [255, 255, 255] # White
150+
151+
# background
152+
# lower = (128, 64, 0) # lower bound for each channel
153+
# upper = (128, 64, 0) # upper bound for each channel
154+
# mask = cv2.inRange(img, lower, upper)
155+
# img[mask != 0] = [0, 0, 0] # Black
156+
157+
158+
159+
# lower = (128, 128, 128) # lower bound for each channel
160+
# upper = (128, 128, 128) # upper bound for each channel
161+
# mask = cv2.inRange(img, lower, upper)
162+
# img[mask != 0] = [0, 0, 0]
163+
#
164+
# #
165+
# lower = (128, 128, 0) # lower bound for each channel
166+
# upper = (128, 128, 0) # upper bound for each channel
167+
# mask = cv2.inRange(img, lower, upper)
168+
# img[mask != 0] = [0, 0, 0]
169+
170+
# # img[mask != 0] = [255, 255, 255] # White
171+
#img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
172+
cv2.imwrite(base_path + '/' + img_path.split(".")[0] + '.png', img)
173+
174+
175+
if __name__ == '__main__':
176+
# create_msrc_mask()
177+
count_unique_colors()

0 commit comments

Comments
 (0)