Toggle navigation
Toggle navigation
This project
Loading...
Sign in
이수빈
/
Find_your_own_personal_color
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
starbucksdolcelatte
2019-06-06 18:11:48 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5c57a27d6b9f1cbc8883a150a77488c3788bebab
5c57a27d
1 parent
67141486
color extraction using for loop, tc/ directory
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
151 additions
and
0 deletions
color_extraction.py
color_extraction.py
0 → 100644
View file @
5c57a27
import
cv2
from
detect_face
import
DetectFace
from
dominant_colors
import
DominantColors
from
tone_analysis
import
ToneAnalysis
from
getjson
import
GetJson
import
imutils
from
colormath.color_objects
import
LabColor
,
sRGBColor
from
colormath.color_conversions
import
convert_color
from
itertools
import
compress
predictor
=
'shape_predictor_68_face_landmarks.dat'
getJson
=
GetJson
()
C
=
getJson
.
get_standard
(
'res/standard.json'
)
# [spring[skin, eyebrow, eye, mouth], summer[skin, eyebrow, eye, mouth],
# fall[skin, eyebrow, eye, mouth], winter[skin, eyebrow, eye, mouth]]
LLL
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
aaa
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
bbb
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
RR
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
GG
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
BB
=
[[[],[],[],[]]
for
_
in
range
(
4
)]
seasons
=
[
'spring'
,
'summer'
,
'fall'
,
'winter'
]
for
j
in
range
(
4
):
path
=
"res/tc/"
+
seasons
[
j
]
+
"/"
for
i
in
range
(
25
):
img
=
path
+
str
(
i
+
1
)
+
'.jpg'
print
(
img
)
df
=
DetectFace
(
predictor
,
img
)
# Try: Extract mouth part
mouth
=
df
.
extract_face_part
(
df
.
mouth
)
# Try: Extract left eye part
l_eye
=
df
.
extract_face_part
(
df
.
left_eye
)
# Try: Extract left eyebrow part
l_eyebrow
=
df
.
extract_face_part
(
df
.
left_eyebrow
)
# Try : Extract cheek part
l_cheek
=
df
.
cheek_img
[
0
]
# Create an DominantColors instance on left cheek image
clusters
=
5
lc_dc
=
DominantColors
(
l_cheek
,
clusters
)
lc_dc
.
dominantColors
()
lc_colors
=
lc_dc
.
plotHistogram
()
le_dc
=
DominantColors
(
l_eye
,
clusters
)
le_dc
.
dominantColors
()
le_colors
=
le_dc
.
plotHistogram
()
leb_dc
=
DominantColors
(
l_eyebrow
,
clusters
)
leb_dc
.
dominantColors
()
leb_colors
=
leb_dc
.
plotHistogram
()
m_dc
=
DominantColors
(
mouth
,
clusters
)
m_dc
.
dominantColors
()
m_colors
=
m_dc
.
plotHistogram
()
# skin, hair, eye, mouth 순서
fil
=
[
leb_colors
[
i
][
2
]
<
250
and
leb_colors
[
i
][
0
]
>
10
for
i
in
range
(
clusters
)]
leb_colors
=
list
(
compress
(
leb_colors
,
fil
))
fil
=
[
le_colors
[
i
][
2
]
<
250
and
le_colors
[
i
][
0
]
>
10
for
i
in
range
(
clusters
)]
le_colors
=
list
(
compress
(
le_colors
,
fil
))
fil
=
[
m_colors
[
i
][
2
]
<
250
and
m_colors
[
i
][
0
]
>
10
for
i
in
range
(
clusters
)]
m_colors
=
list
(
compress
(
m_colors
,
fil
))
cy_rgb
=
[
lc_colors
[
0
:
3
],
leb_colors
[
0
:
3
],
le_colors
[
0
:
3
],
m_colors
[
0
:
3
]]
cy_lab
=
[]
for
iii
in
range
(
3
):
for
sth
in
range
(
4
):
color
=
cy_rgb
[
sth
][
iii
]
RR
[
j
][
sth
]
.
append
(
color
[
0
])
GG
[
j
][
sth
]
.
append
(
color
[
1
])
BB
[
j
][
sth
]
.
append
(
color
[
2
])
rgb
=
sRGBColor
(
color
[
0
],
color
[
1
],
color
[
2
],
is_upscaled
=
True
)
lab
=
convert_color
(
rgb
,
LabColor
,
through_rgb_type
=
sRGBColor
)
cy_lab
.
append
([
format
(
lab
.
lab_l
,
".2f"
),
format
(
lab
.
lab_a
,
".2f"
),
format
(
lab
.
lab_b
,
".2f"
)])
LLL
[
j
][
sth
]
.
append
(
format
(
lab
.
lab_l
,
".2f"
))
aaa
[
j
][
sth
]
.
append
(
format
(
lab
.
lab_a
,
".2f"
))
bbb
[
j
][
sth
]
.
append
(
format
(
lab
.
lab_b
,
".2f"
))
sth
+=
1
bodys
=
[
'left cheek'
,
'left eyebrow'
,
'left eye'
,
'mouth'
]
print
(
seasons
[
j
])
for
ii
in
range
(
4
):
print
(
bodys
[
ii
])
print
(
"L : "
,
LLL
[
j
][
ii
])
print
(
"a : "
,
aaa
[
j
][
ii
])
print
(
"b : "
,
bbb
[
j
][
ii
])
print
(
"R : "
,
RR
[
j
][
ii
])
print
(
"G : "
,
GG
[
j
][
ii
])
print
(
"B : "
,
BB
[
j
][
ii
])
plotRGB
=
[[[
RR
[
j
][
ii
][
iii
],
GG
[
j
][
ii
][
iii
],
BB
[
j
][
ii
][
iii
]]
for
iii
in
range
(
75
)]
for
ii
in
range
(
4
)]
# ii is cheek, eyebr, eye, mouth
print
(
"**************"
)
print
(
plotRGB
[
0
])
print
(
plotRGB
[
1
])
print
(
plotRGB
[
2
])
print
(
plotRGB
[
3
])
'''
tone_analysis = ToneAnalysis()
print("******************")
a = [400, 200, 20] # 가중치
spring = 0
summer = 1
fall = 2
winter = 3
result_prob = []
for season in range(4):
result_prob.append(format(tone_analysis.probability(cy_rgb, season, C, a),".2f"))
print("결과")
print("봄 : ", result_prob[spring], "
%
")
print("여름 : ", result_prob[summer], "
%
")
print("가을 : ", result_prob[fall], "
%
")
print("겨울 : ", result_prob[winter], "
%
")
print("******************")
'''
'''
closer_to_warm = 28 - cy_lab[0][2]
print("distance to warm : ", closer_to_warm)
closer_to_cool = cy_lab[0][2] - 19
print("distance to cool : ", closer_to_cool)
if(closer_to_warm < closer_to_cool):
if(result_prob[spring] >= result_prob[fall]):
print("봄 웜톤")
else:
print("가을 웜톤")
else:
if(result_prob[summer] >= result_prob[winter]):
print("여름 쿨톤")
else:
print("겨울 쿨톤")
'''
Please
register
or
login
to post a comment