Shapeworks: рдкреИрдХреЗрдЬрд┐рдВрдЧ shapeworkspy рдФрд░ рдХреЗрд╕ рд░рд┐рд╕реНрдЯреНрд░рдХреНрдЪрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рджрд┐рд╕ре░ 2020  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SCIInstitute/ShapeWorks

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдкреБрдирд░реНрдЧрдарди рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реЗрдкрд╡рд░реНрдХреНрд╕ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
  2. рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдЯрдмреБрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
  3. GroomUtils рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

#818 . рд╕реЗ

рджреВрд▓реНрд╣реЗ рдХреЗ рдмрд░реНрддрдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдмреИрдЪ рд╡рд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдпрд╣ рдЗрд╕реЗ рдЗрддрдирд╛ рдордзреНрдпрд╡рд░реНрддреА рдЧреНрд░реВрдорд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ (рд╕рдорд╕реНрдпрд╛ # 598) рдФрд░ рдЪрд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдорд╕реНрдпрд╛ # 507)

рдЖрдЗрдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реЗрдкрд╡рд░реНрдХреНрд╕ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдкреИрд░реЗрдВрдЯ/рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВред рд╣рдо рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рддрджрдиреБрд╕рд╛рд░ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред

@ jadie1 @ iyerkritika21 рдХреГрдкрдпрд╛ рдЕрдЬрдЧрд░ рдПрдкреАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрд╕реА рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдЬреЗрдВрдбреЗ рдореЗрдВ рдКрдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ред

рдореИрдВ рдЕрдм рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬрд┐рдВрдЧ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдкрд┐рдВрдЧ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реБрдЭрд╛рд╡ рдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред

рдореБрдЭреЗ рдорд┐рд▓реЗ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢:

рдЕрдм рддрдХ рдореИрдВ рдХреЛрдВрдбрд╛ рдореЗрдВ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдХреЛрдВрдбрд╛ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реНрдЯреВрдбрд┐рдпреЛред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗред

рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдбрд░ рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЪреВрд╕ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдХрд┐ OSX рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░реЗ рдФрд░ рд╡рд╣рд╛рдБ рд╕реЗ рдЪрд▓рд╛ рдЬрд╛рдПред

рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрд░реЗ рд▓рд┐рдП Ubuntu 18.04 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рдореБрдЭреЗ рдпрд╣ рдХрд░рдирд╛ рдерд╛:

  1. RunUseCase.py рдореЗрдВ, рдореИрдВрдиреЗ рд╢реАрд░реНрд╖ sys.path.append('../../build/cmake-build-release/bin/') рдкрд░ рдЬреЛрдбрд╝рд╛
  2. рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ LD_LIBRARY_PATH=../../dependencies/install/lib/ рд╕реЗрдЯ рдХрд░реЗрдВ (рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рд▓рд╛рдкрддрд╛ "libvcl.so" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ)

рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЗрдЯ/рд╕реЗрд╡ рдлрдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рд░рд╛рдЗрдЯ рдСрдкреНрд╢рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ:

img.binarize(write=False)
img.resample(write=True).binarize(write=True)

рдХреЗ рдмрдЬрд╛рдП

img.binarize()
img.write()
img.resample()
img.write()

рдЗрд╕реЗ рд╢рд╛рдпрдж рдЗрдирдкреБрдЯ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, img.binarize (рд▓рд┐рдЦреЗрдВ = рд╕рд╣реА, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо = 'рдмреНрд▓рдмреНрд▓рд╛')

@archanasri @cchriste рд╡рд┐рдЪрд╛рд░?

рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЗрдЯ/рд╕реЗрд╡ рдлрдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рд░рд╛рдЗрдЯ рдСрдкреНрд╢рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ:

img.binarize(write=False)
img.resample(write=True).binarize(write=True)

рдХреЗ рдмрдЬрд╛рдП

img.binarize()
img.write()
img.resample()
img.write()

Image.write рд╣рд░ рдЪреАрдЬ рдХреА рддрд░рд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЪреЗрди рдореЗрдВ рдбрд╛рд▓ рджреЗрдВ рдЕрдЧрд░
рдЖрдк рдпрд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

img.binarize().write(<path>)
img.resample().write(<path>).binarize()

рдордВрдЧрд▓рд╡рд╛рд░, 19 рдЬрдирд╡рд░реА, 2021 рдХреЛ рд╢рд╛рдо 4:58 рдмрдЬреЗ рд╢рд┐рд░реАрди рдПрд▓рд╣рд╛рдмрд┐рдпрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЗрд╕реЗ рд╢рд╛рдпрдж рдЗрдирдкреБрдЯ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, img.binarize (рд▓рд┐рдЦреЗрдВ = рд╕рд╣реА, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо = 'рдмреНрд▓рдмреНрд▓рд╛')

@archanasri https://github.com/archanasri @cchriste
https://github.com/cchriste рд╡рд┐рдЪрд╛рд░?

рдордзреНрдпрд╡рд░реНрддреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣рдо рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдПрдХ рдЕрд▓рдЧ рд▓рд┐рдЦрдиреЗ/рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рднреАрддрд░ рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдЦреЗрдВ
рд╕рдорд╛рд░реЛрд╣?
рдореИрдВ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ:

img.binarize(рд▓рд┐рдЦреЗрдВ=рдЧрд▓рдд)
img.resample (рд▓рд┐рдЦреЗрдВ = рд╕рдЪ)ред рдмрд┐рдирд░рд╛рдЗрдЬрд╝ (рд▓рд┐рдЦреЗрдВ = рд╕рдЪ)

рдХреЗ рдмрдЬрд╛рдП

img.binarize ()
img.рд▓рд┐рдЦреЗрдВ ()
img.resample()
img.рд▓рд┐рдЦреЗрдВ ()

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/SCIInstitute/ShapeWorks/issues/865#issuecomment-763221837 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAJT3EP3HDOHQGC54NMWSJDS2YMA7ANCNFSM4U3KV45Q
.

Image.write рд╣рд░ рдЪреАрдЬ рдХреА рддрд░рд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рд╣реИред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рдЬрдВрдЬреАрд░ рдореЗрдВ рдбрд╛рд▓ рджреЗрдВред img.binarize().write(<path>) img.resample().write(<path>).binarize()
тАж

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЗрдЦрди рдХрд╛рд░реНрдп рднреА рд╢реНрд░реГрдЦрдВрд▓рд╛рдмрджреНрдз рд╣реИ; рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рднреАрддрд░ рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдзреНрд╡рдЬ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдордзреНрдпрд╡рд░реНрддреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рд╕реВрдбреЛ-рдХреЛрдб:

function groom(write_flag):
    img.binarize(write = write_flag).resize(write = write_flag).crop(write=write_flag)
groom(write_flag = True)
groom(write_flag = False)

рдЗрд╕ рддрд░рд╣, рд╣рдо рдПрдХ рд╣реА рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╕ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЬрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣рдо GroomUtils.py рд╕реЗрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ
"рд╕рд╣рд╛рдпрдХ" рдХрд╛рд░реНрдп рд╣рдорд╛рд░реЗ рд╕реМрдВрджрд░реНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдирд╛ рд╣реИред
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдЦрдВрдб рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, рд▓рдЪреАрд▓рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛
рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ, рд╕реАрдзрд╛ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ,
рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЧрд░ рд╣рдо (рдЬреНрдпрд╛рджрд╛) рдЪреЗрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг, рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реЛрдЧрд╛
рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭреЗ рдЬрд╛рдиреЗ рдкрд░ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдоред рдЕрднреА рддреЛ рд╕рдм рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ
рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА
one GroomUtils рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ (рд╢рд╛рдпрдж рдордирдорд╛рдирд╛) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрдЪрд╛рд▓рди, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрдЧрд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рдЙрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ
рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рдорддрд▓ рдХрд░реЗрдВ, рдФрд░ рд╕рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдирд╣реАрдВ
рд╕рд┐рд░реНрдл рджреАрд░реНрдШрд╡реГрддреНрддред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рджреЗрдЦреЗрдВрдЧреЗ рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣реИ
рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕реАрдзрд╛ рд╕реЗрдЯ рдЬреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ
(рдЙрджрд╛: рдЬрдм рдореВрд▓ рдЪрд┐рддреНрд░ "рд╕рд╡рд╛рд░реА рдХреЗ рд╕рд╛рде" рд╣реЛрдВ)ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░/рдпрд╛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреА рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╕рдордЭ рд╣реИ
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрддрд╛ рддреЛ рдореИрдВ рдХреНрдпрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛:

for img in images:

# since we're starting with fuzzy data, we first need to ensure it's a
binary (black and white) image in order to <explain>
img.binarize()

# next, we must ensure images all have the same logical dimensions since
<explain>
img.resize()

# now we'll crop these images using the bounds we computed earlier so they
all encompass the data without leftover space (since it can be costly and
pointless to compute)
img.crop(bounds)

рд╣рдо рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЛ рдЪреЗрдирд┐рдВрдЧ рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ
рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рдж .write(<path> рдЬреЛрдбрд╝рдХрд░ред рд╣рдо рдЬреЛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╡рд╣ рдХреБрдЫ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рдЬреЛ "рдмрд╕ рдХрд░рддрд╛ рд╣реИ" рдХреНрдпреЛрдВрдХрд┐ "рдпрд╣" рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ
рдбрд╛рдЯрд╛рд╕реЗрдЯред рдмрдЬрд╛рдп,
рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рджрд┐рдЦрд╛рдХрд░ рд╕рд╢рдХреНрдд рдмрдирд╛рдПрдВрдЧреЗ рдХрд┐ рдЬреЛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд╣реИ
рдпрд╣ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдЙрдиреНрд╣реЗрдВ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп a
рдПрдХ рдЕрд░рдм рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЙрдиреНрд╣реЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рджреЗрдВ рдФрд░ рдЪрд▓реЛ
рд╡реЗ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдкреАрдЫреЗ рдХреЗ рдкреВрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА
GroomUtils.

рд╕реЛрдо, 25 рдЬрдирд╡рд░реА, 2021 рдХреЛ рд╕реБрдмрд╣ 9:49 рдмрдЬреЗ рдХреГрддрд┐рдХрд╛ рдЕрдпреНрдпрд░ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

Image.write рд╣рд░ рдЪреАрдЬ рдХреА рддрд░рд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЪреЗрди рдореЗрдВ рдбрд╛рд▓ рджреЗрдВ рдЕрдЧрд░
рдЖрдк рдпрд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВред img.binarize ()ред рд▓рд┐рдЦреЗрдВ ()
img.resample ()ред рд▓рд┐рдЦреЗрдВ ().рдмрд┐рдирд╛рд░рд╛рдЗрдЬ ()
... <#m_-7433729883366947300_>

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЗрдЦрди рдХрд╛рд░реНрдп рднреА рд╢реНрд░реГрдЦрдВрд▓рд╛рдмрджреНрдз рд╣реИ; рдореЗрд░реА рдмрд╛рдд рдХреЗ рд╕рд╛рде
рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рднреАрддрд░ рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╕рд┐рд░реНрдл рдПрдХ рд╣реЛрдирд╛ рдерд╛
рдХрд╛рд░реНрдп рдХрд░реЗрдВ рдФрд░ рдзреНрд╡рдЬ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдордзреНрдпрд╡рд░реНрддреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдпрд╛ рдирд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВред
рдЙрджрд╛рд╣рд░рдг рд╕реВрдбреЛ-рдХреЛрдб:

рд╕рдорд╛рд░реЛрд╣ рджреВрд▓реНрд╣реЗ (write_flag):

img.binarize(write = write_flag).resize(write = write_flag).crop(write=write_flag)

рджреВрд▓реНрд╣реЗ (write_flag = рд╕рдЪ)

рджреВрд▓реНрд╣реЗ (рд▓рд┐рдЦрдирд╛_рдзреНрд╡рдЬ = рдЭреВрдард╛)

рдЗрд╕ рддрд░рд╣, рд╣рдо рдПрдХ рд╣реА рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/SCIInstitute/ShapeWorks/issues/865#issuecomment-766952032 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAJT3EJND2F3EDVU75NB6ITS3WOIPANCNFSM4U3KV45Q
.

@iyerkritika21 @jadie1

рдореИрдВ @cchriste рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЖрдЗрдП рдЪреЗрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рди рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рди рд╣реЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рдЗрдирд░реА рдЗрдореЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛), рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рд░реЗрдЬрд╝рдореНрдкрд▓рд┐рдВрдЧ (рдХреЙрдореНрдмреЛ) рдЪрд░рдг рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдордзреНрдпрд╡рд░реНрддреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред

рд▓реЗрдЦрди (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рдЪрд┐рддреНрд░ рдЗрд╕рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░реАрди рдЙрджрд╛рд╣рд░рдг рд╣реИ
рдЬрдм рдЬрдВрдЬреАрд░ рдЙрдЪрд┐рдд рд╣реИред

# let's see what happened
img.operation(...) -> img.operation(...).write(<path>)

рдЬрдмрдХрд┐, рдЬрдм рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдКрдкрд░ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд▓рд╛рдЗрдиред

...
# now let's write the results
img.write(<path>)

рд╕реЛрдо, 25 рдЬрдирд╡рд░реА, 2021 рдХреЛ рд╕реБрдмрд╣ 10:34 рдмрдЬреЗ рд╢рд┐рд░реАрди рдПрд▓рд╣рд╛рдмрд┐рдпрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@iyerkritika21 https://github.com/iyerkritika21 @jadie1
https://github.com/jadie1

рдореИрдВ @cchriste https://github.com/cchriste рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЖрдЗрдП рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рди рд╣реЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрди: рдирдореВрдирд╛рдХрд░рдг)
рдмрд╛рдЗрдирд░реА рдЗрдореЗрдЬ), рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╣рдореЗрдВ рд╣рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рдкреБрди: рдирдореВрдирд╛рдХрд░рдг (рдХреЙрдореНрдмреЛ) рдЪрд░рдг рдХрд╛ рдордзреНрдпрд╡рд░реНрддреА рдЖрдЙрдЯрдкреБрдЯред рдЖрдЗрдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд░реЗрдВ
рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/SCIInstitute/ShapeWorks/issues/865#issuecomment-766983878 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAJT3EKKARLKY4VKBRPHJWLS3WTSNANCNFSM4U3KV45Q
.

рдкреБрдирд░реНрдЧрдарди рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реЗрдкрд╡рд░реНрдХреНрд╕ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
  2. рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдЯрдмреБрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
  3. GroomUtils рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред

рдпрд╛рдж рд░рдЦреЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ python_module рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рд╢реБрд░реВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдорд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рддреЗ рд░рд╣реЗрдВред рдпрд╣ рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

iyerkrithika21 picture iyerkrithika21  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

akenmorris picture akenmorris  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

akenmorris picture akenmorris  ┬╖  32рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

iyerkrithika21 picture iyerkrithika21  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

akenmorris picture akenmorris  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ