0
0
mirror of http://CODE.RHODECODE.COM/u/O/O/O synced 2024-11-25 04:48:53 -05:00

𖣠ᗯⓄᙁᕀᕊ❂ИNᗩᗱᗎↀⵙᙁᑐᑕᑎᗱᗎ𖥞옷ߊᗩᎥᕀᕊᗱᗎߊᗩ옷ᔓᔕ🝊ᔓᔕᑎⵙ⚭ᗩꗳ𖡗𔗢🞋𔗢𖡗ꗳᗩ⚭ⵙᑎᔓᔕ🝊ᔓᔕ옷ᗩߊᗱᗎᕀᕊᎥᗩߊ옷𖥞ᗱᗎᑎᑐᑕᙁⵙↀᗱᗎᗩИN❂ᕀᕊᙁⓄᗯ𖣠

𖣠⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᗯⓄᙁᕀᕊ❂ᎥᗱᗎИNᎥⓄᑐᑕ⛶ᗱᗎᙁᑐᑕᎥⵙᑎ€ᔓᔕ▢ᔓᔕᑎⵙ⚭ᗩꗳ𖡗ИNᗩᗱᗎↀⵙᙁᑐᑕᑎᗱᗎ𖥞옷ߊᗩᎥᕀᕊↀᗱᗎߊᗩ옷ᔓᔕ🝊ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ𐫱ᔓᔕᑎⵙ⚭ᗩꗳ𖡗⚪𔗢⚪🞋⚪𔗢⚪𖡗ꗳᗩ⚭ⵙᑎᔓᔕ𐫱ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ🝊ᔓᔕ옷ᗩߊᗱᗎↀᕀᕊᎥᗩߊ옷𖥞ᗱᗎᑎᑐᑕᙁⵙↀᗱᗎᗩИN𖡗ꗳᗩ⚭ⵙᑎᔓᔕ▢ᔓᔕ€ᑎⵙᎥᑐᑕᙁᗱᗎ⛶ᑐᑕⓄᎥИNᗱᗎᎥ❂ᕀᕊᙁⓄᗯ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪𖣠
This commit is contained in:
O 2024-08-02 15:49:52 +00:00
parent 4b7867db0f
commit b00e29b82a
5 changed files with 406061 additions and 0 deletions

65537
ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/IIϜƧA.XHê“š.𖣠⚪⠿ⵈ➭➭⠿𖥕✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᗱᗎ✻ᑎИN☢ᎥᗱᗎИNᎥⓄᑐᑕ⛶ᗱᗎᙁᑐᑕᎥⵙᑎ€ᔓᔕ▢ИNⓄⵙᔓᔕⵙᑐᑕᗱᗎᎥᑫᑭ𖣚ↀᗱᗎ⎵ⵙᙁᗩᗱᗎↀⵙ᪣ИNⓄⵙ✀ᑐᑕИNᑎꗳ𖡹ᔓᔕᑎⵙ⚭ᗩꗳ𖡗⚪𔗢⚪🞋⚪𔗢⚪𖡗ꗳᗩ⚭ⵙᑎᔓᔕ𖡹ꗳᑎИNᑐᑕ✀ⵙⓄИN᪣ⵙↀᗱᗎᗩᙁⵙ⎵ᗱᗎↀ𖣚ᑫᑭᎥᗱᗎᑐᑕⵙᔓᔕⵙⓄИN▢ᔓᔕ€ᑎⵙᎥᑐᑕᙁᗱᗎ⛶ᑐᑕⓄᎥИNᗱᗎᎥ☢ИNᑎ✻ᗱᗎ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀𖥕⠿➭➭ⵈ⠿⚪𖣠.GHX.ASCII Normal file

File diff suppressed because it is too large Load Diff

338690
ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/XHê“š.⊿⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᎥⓄꗳ⛯ᗱᗎ✀ᗱᗎᑎⓄ옷ᙁⵙᔓᔕ❁옷ߊᗩᎥᕀᕊↀᗱᗎߊᗩ옷ᔓᔕ🝊ᔓᔕ⚭ᙏⓄᑐᑕ᳀ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ𐫱ИNⓄⵙᔓᔕⵙᑐᑕᗱᗎᎥߊ𖣚ↀᗱᗎ⎵ⵙᙁᗩᗱᗎↀⵙ᪣ИNⓄⵙ✀ᑐᑕИNᑎꗳ𖡹ᔓᔕᑎⵙ⚭ᗩꗳ𖡗⚪𔗢⚪🞋⚪𔗢⚪𖡗ꗳᗩ⚭ⵙᑎᔓᔕ𖡹ꗳᑎИNᑐᑕ✀ⵙⓄИN᪣ⵙↀᗱᗎᗩᙁⵙ⎵ᗱᗎↀ𖣚ߊᎥᗱᗎᑐᑕⵙᔓᔕⵙⓄИN𐫱ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ᳀ᑐᑕⓄᙏ⚭ᔓᔕ🝊ᔓᔕ옷ᗩߊᗱᗎↀᕀᕊᎥᗩߊ옷❁ᔓᔕⵙᙁ옷Ⓞᑎᗱᗎ✀ᗱᗎ⛯ꗳⓄᎥ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪⊿.GHX Normal file

File diff suppressed because one or more lines are too long

81
ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/YꟌ.𖣠⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᙏᎥⓄꗳᔓᔕИNᗩᎥ✀𖥟ᗱᗎᑐᑕИNᗩ✀ᔓᔕⵙↀ𖡊ИNᗩᗱᗎↀⵙᙁᑐᑕᑎᗱᗎ𖥞⚪𔗢⚪🞋⚪𔗢⚪𖥞ᗱᗎᑎᑐᑕᙁⵙↀᗱᗎᗩИN𖡊ↀⵙᔓᔕ✀ᗩИNᑐᑕᗱᗎ𖥟✀ᎥᗩИNᔓᔕꗳⓄᎥᙏ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪𖣠.PY Normal file
View File

@ -0,0 +1,81 @@
import cv2,OpenEXR,Imath
import numpy as ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ
from edt import edt
ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ='ꓚИꟌ..𖣠⚪ᗱᗎᕀᕊᗩᙏⵙ𖣓✀ᔓᔕᗱᗎ✀⚪𔗢⚪🞋⚪𔗢⚪✀ᗱᗎᔓᔕ✀𖣓ⵙᙏᗩᕀᕊᗱᗎ⚪𖣠..PNG'
ⵙᗱᗎᕀᕊᗩᙏꖎ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꖎᙏᗩᕀᕊᗱᗎⵙ=cv2.imdecode(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.fromfile(ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ,ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.uint8),cv2.IMREAD_COLOR)
ⵙᗱᗎᙁᗩᑐᑕᔓᔕ人ᗩᎥᕀᕊ〇O𖧷〇ↀᗱᗎ𖧷ᗱᗎᐱИNOᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕOИNᐱᗱᗎ𖧷ᗱᗎↀ〇𖧷O〇ᕀᕊᎥᗩ人ᔓᔕᑐᑕᗩᙁᗱᗎⵙ=cv2.cvtColor(ⵙᗱᗎᕀᕊᗩᙏꖎ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꖎᙏᗩᕀᕊᗱᗎⵙ,cv2.COLOR_BGR2GRAY)
ⵙИNᎥᑎ𖧷ᗱᗎᎥⵙ〇ⵙ〇ⵙᎥᗱᗎ𖧷ᑎᎥИNⵙ,ⵙↀᙁO옷ᔓᔕᗱᗎᎥ옷𖧷ⵙ〇ⵙ〇ⵙ𖧷옷Ꭵᗱᗎᔓᔕ옷Oᙁↀⵙ=cv2.threshold(ⵙᗱᗎᙁᗩᑐᑕᔓᔕ人ᗩᎥᕀᕊ〇O𖧷〇ↀᗱᗎ𖧷ᗱᗎᐱИNOᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕOИNᐱᗱᗎ𖧷ᗱᗎↀ〇𖧷O〇ᕀᕊᎥᗩ人ᔓᔕᑐᑕᗩᙁᗱᗎⵙ,127,255,cv2.THRESH_BINARY)
ⵙᎥᗱᗎ8ᙏᑎИN〇ᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁ〇ИNᑎᙏ8ᗱᗎᎥⵙ,ⵙᔓᔕᙁᗱᗎᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕᗱᗎᙁᔓᔕⵙ,ⵙᔓᔕᑐᑕꖎ𖧷ᔓᔕꖎ𖧷ᗩ𖧷ᔓᔕ〇ᔓᔕᙁᗱᗎᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕᗱᗎᙁᔓᔕ〇ᔓᔕ𖧷ᗩ𖧷ꖎᔓᔕ𖧷ꖎᑐᑕᔓᔕⵙ,ⵙᔓᔕↀꖎOᎥ𖧷ИNᗱᗎᑐᑕ〇ᔓᔕᙁᗱᗎᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕᗱᗎᙁᔓᔕ〇ᑐᑕᗱᗎИN𖧷ᎥOꖎↀᔓᔕⵙ=cv2.connectedComponentsWithStats(ⵙↀᙁO옷ᔓᔕᗱᗎᎥ옷𖧷ⵙ〇ⵙ〇ⵙ𖧷옷Ꭵᗱᗎᔓᔕ옷Oᙁↀⵙ)
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.zeros_like(ⵙᔓᔕᙁᗱᗎᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕᗱᗎᙁᔓᔕⵙ)
for i in range(1,ⵙᎥᗱᗎ8ᙏᑎИN〇ᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁ〇ИNᑎᙏ8ᗱᗎᎥⵙ):ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ[ⵙᔓᔕᙁᗱᗎᑐᑕ〇ᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎ〇ᑐᑕᗱᗎᙁᔓᔕⵙ==i]=i
ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ=edt(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ.astype(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.float32))
ⵙᔓᔕᗱᗎИNᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁИNᗱᗎᔓᔕⵙ='·'
ⵙᎥO𖧷ᑐᑕᗩꗳⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙꗳᗩᑐᑕ𖧷OᎥⵙ=2/4.793447 # 2/5.5625 # 1/27**1/ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.cbrt(2)
ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ,ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ=ⵙᗱᗎᕀᕊᗩᙏꖎ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꖎᙏᗩᕀᕊᗱᗎⵙ.shape[:2]
ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ=int(max(ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ,ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ)*ⵙᎥO𖧷ᑐᑕᗩꗳⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙꗳᗩᑐᑕ𖧷OᎥⵙ)
ⵙↀᙁO옷ᔓᔕᗱᗎᎥ옷𖧷ⵙ𖧷ИNᑎOᑐᑕⵙᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁⵙᑐᑕOᑎИN𖧷ⵙ𖧷옷Ꭵᗱᗎᔓᔕ옷Oᙁↀⵙ=min(ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ,ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ)*64
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.zeros_like(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ,dtype=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.float32)
if ⵙᔓᔕᗱᗎИNᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁИNᗱᗎᔓᔕⵙ=='ⵔ':
for i in range(1,ⵙᎥᗱᗎ8ᙏᑎИN〇ᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁ〇ИNᑎᙏ8ᗱᗎᎥⵙ):
ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ=(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ==i)
ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ᙁᗱᗎᑐᑕ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ᑐᑕᗱᗎᙁ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ=ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]
ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ᙏᑎᙏꖎꕀᗩᙏ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ᔓᔕᙁᗱᗎᑐᑕ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ᑐᑕᗱᗎᙁᔓᔕ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ᙏᗩꕀꖎᙏᑎᙏ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.max(ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ᙁᗱᗎᑐᑕ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ᑐᑕᗱᗎᙁ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ)
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.clip(ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ᙁᗱᗎᑐᑕ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ᑐᑕᗱᗎᙁ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ,0,ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ)/ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ
elif ⵙᔓᔕᗱᗎИNᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁИNᗱᗎᔓᔕⵙ=="·":
for i in range(1,ⵙᎥᗱᗎ8ᙏᑎИN〇ᙁᗱᗎ8ᗩᙁⵙ〇ⵙ〇ⵙᙁᗩ8ᗱᗎᙁ〇ИNᑎᙏ8ᗱᗎᎥⵙ):
ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ=(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ==i)
if ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.sum(ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ)>ⵙↀᙁO옷ᔓᔕᗱᗎᎥ옷𖧷ⵙ𖧷ИNᑎOᑐᑕⵙᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁⵙᑐᑕOᑎИN𖧷ⵙ𖧷옷Ꭵᗱᗎᔓᔕ옷Oᙁↀⵙ:
ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ↀᗱᗎߊꖎᙁᑐᑕⵙ〇ⵙ〇ⵙᑐᑕᙁꖎߊᗱᗎↀ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.clip(ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]/ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.max(ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]),0,ⵙᎥO𖧷ᑐᑕᗩꗳⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀⵙ𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊⵙᙏᑎᙏꖎꕀᗩᙏⵙ〇ⵙ〇ⵙᙏᗩꕀꖎᙏᑎᙏⵙᕀᕊᎥᗩↀꖎᗱᗎИN𖧷ⵙↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙꗳᗩᑐᑕ𖧷OᎥⵙ)
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]=cv2.normalize(ⵙᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇𖧷ИNᗱᗎꖎↀᗩᎥᕀᕊ〇ↀᗱᗎߊꖎᙁᑐᑕⵙ〇ⵙ〇ⵙᑐᑕᙁꖎߊᗱᗎↀ〇ᕀᕊᎥᗩↀꖎᗱᗎИN𖧷〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎⵙ[:,ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.newaxis],None,0,1,cv2.NORM_MINMAX).flatten()
else:
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]=ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ]/ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.max(ⵙᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ИNᗩᗱᗎↀꖎᙁᑐᑕᑎᗱᗎⵙ〇ⵙ〇ⵙᗱᗎᑎᑐᑕᙁꖎↀᗱᗎᗩИN〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏⵙ[ⵙ𐊌ᔓᔕᗩᙏⵙ〇ⵙ〇ⵙᙏᗩᔓᔕ𐊌ⵙ])
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏ〇𖧷ꖎ8〇𓃎·ⵙ〇ⵙ〇ⵙ·𓃎〇8ꖎ𖧷〇ᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ=(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ*65535).astype(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.uint16)
def ⵙᎥꕀᗱᗎ〇ᗱᗎ𖧷ᗩᎥᗱᗎИNᗱᗎᕀᕊⵙ〇ⵙ〇ⵙᕀᕊᗱᗎИNᗱᗎᎥᗩ𖧷ᗱᗎ〇ᗱᗎꕀᎥⵙ(ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳⵙ〇ⵙ〇ⵙꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ,ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ):
if ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.ndim==2:
ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ,ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ=ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.shape
ⵙᙁᗱᗎИNᗩ옷ᑐᑕ〇ᗩ옷ߊᙁᗩⵙ〇ⵙ〇ⵙᗩᙁߊ옷ᗩ〇ᑐᑕ옷ᗩИNᗱᗎᙁⵙ=ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ/ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.max(ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ)
ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ=ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.stack((ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ,)*3+(ⵙᙁᗱᗎИNᗩ옷ᑐᑕ〇ᗩ옷ߊᙁᗩⵙ〇ⵙ〇ⵙᗩᙁߊ옷ᗩ〇ᑐᑕ옷ᗩИNᗱᗎᙁⵙ,),axis=-1)
elif ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.ndim==3 and ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.shape[2]==4:
ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ,ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ,ⵙᔓᔕᙁᗱᗎИNᗩ옷ᑐᑕⵙ〇ⵙ〇ⵙᑐᑕ옷ᗩИNᗱᗎᙁᔓᔕⵙ=ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.shape
else:
raise ValueError("")
ⵙᗱᗎߊ人𖧷〇ᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁ〇𖧷人ߊᗱᗎⵙ=Imath.PixelType(Imath.PixelType.FLOAT)
ⵙᎥᗱᗎↀᗩᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎᗩↀᗱᗎᎥⵙ=OpenEXR.Header(ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ,ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ)
ⵙᎥᗱᗎↀᗩᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎᗩↀᗱᗎᎥⵙ['ⵙᔓᔕᙁᗱᗎИNᗩ옷ᑐᑕⵙ〇ⵙ〇ⵙᑐᑕ옷ᗩИNᗱᗎᙁᔓᔕⵙ']={
'R':Imath.Channel(ⵙᗱᗎߊ人𖧷〇ᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁ〇𖧷人ߊᗱᗎⵙ),
'G':Imath.Channel(ⵙᗱᗎߊ人𖧷〇ᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁ〇𖧷人ߊᗱᗎⵙ),
'B':Imath.Channel(ⵙᗱᗎߊ人𖧷〇ᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁ〇𖧷人ߊᗱᗎⵙ),
'A':Imath.Channel(ⵙᗱᗎߊ人𖧷〇ᙁᗱᗎꕀꖎߊⵙ〇ⵙ〇ⵙߊꖎꕀᗱᗎᙁ〇𖧷人ߊᗱᗎⵙ)
}
ⵙᗱᗎᙁꖎꗳ〇𖧷ᑎߊ𖧷ᑎOⵙ〇ⵙ〇ⵙOᑎ𖧷ߊᑎ𖧷〇ꗳꖎᙁᗱᗎⵙ=OpenEXR.OutputFile(ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳⵙ〇ⵙ〇ⵙꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ.encode('utf-8'),ⵙᎥᗱᗎↀᗩᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎᗩↀᗱᗎᎥⵙ)
ⵙᗩ𖧷ᗩↀ〇𖧷ᗩᙁꗳⵙ〇ⵙ〇ⵙꗳᙁᗩ𖧷〇ↀᗩ𖧷ᗩⵙ=ⵙᗩ𖧷ᗩↀⵙ〇ⵙ〇ⵙↀᗩ𖧷ᗩⵙ.reshape(ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ*ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ,4)
ⵙᗱᗎᙁꖎꗳ〇𖧷ᑎߊ𖧷ᑎOⵙ〇ⵙ〇ⵙOᑎ𖧷ߊᑎ𖧷〇ꗳꖎᙁᗱᗎⵙ.writePixels({
'R':ⵙᗩ𖧷ᗩↀ〇𖧷ᗩᙁꗳⵙ〇ⵙ〇ⵙꗳᙁᗩ𖧷〇ↀᗩ𖧷ᗩⵙ[:,0].tobytes(),
'G':ⵙᗩ𖧷ᗩↀ〇𖧷ᗩᙁꗳⵙ〇ⵙ〇ⵙꗳᙁᗩ𖧷〇ↀᗩ𖧷ᗩⵙ[:,1].tobytes(),
'B':ⵙᗩ𖧷ᗩↀ〇𖧷ᗩᙁꗳⵙ〇ⵙ〇ⵙꗳᙁᗩ𖧷〇ↀᗩ𖧷ᗩⵙ[:,2].tobytes(),
'A':ⵙᗩ𖧷ᗩↀ〇𖧷ᗩᙁꗳⵙ〇ⵙ〇ⵙꗳᙁᗩ𖧷〇ↀᗩ𖧷ᗩⵙ[:,3].tobytes()
})
ⵙᎥꕀᗱᗎ〇ᗱᗎ𖧷ᗩᎥᗱᗎИNᗱᗎᕀᕊⵙ〇ⵙ〇ⵙᕀᕊᗱᗎИNᗱᗎᎥᗩ𖧷ᗱᗎ〇ᗱᗎꕀᎥⵙ(f"ЯXƎ.𖣠⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖣓✀ⵙ⚭𖣓꞉ⵈ⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪ⵈ꞉𖣓⚭ⵙ✀𖣓ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪𖣠.EXR",1-ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ)
ⵙᎥꕀᗱᗎ〇ᗱᗎ𖧷ᗩᎥᗱᗎИNᗱᗎᕀᕊⵙ〇ⵙ〇ⵙᕀᕊᗱᗎИNᗱᗎᎥᗩ𖧷ᗱᗎ〇ᗱᗎꕀᎥⵙ(f"ЯXƎ.𖣠⚪ᔓᔕᙁᗱᗎᑐᑕ𖣓ↀᗱᗎᙁᗱᗎ⚭ᗩᙁ𖣓ᎥⓄᙁⓄᑐᑕ⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪ᑐᑕⓄᙁⓄᎥ𖣓ᙁᗩ⚭ᗱᗎᙁᗱᗎↀ𖣓ᑐᑕᗱᗎᙁᔓᔕ⚪𖣠.EXR",ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.concatenate([(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ/ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.max(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ)).astype(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.float32)],axis=-1))
cv2.imencode('.png',cv2.normalize(ⵙↀᙁO옷ᔓᔕᗱᗎᎥ옷𖧷ⵙ〇ⵙ〇ⵙ𖧷옷Ꭵᗱᗎᔓᔕ옷Oᙁↀⵙ,None,0,255,cv2.NORM_MINMAX))[1].tofile(f"ꓚИꟌ.𖣠⚪ↀᙁⓄ옷ᔓᔕᗱᗎᎥ옷✀⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪✀옷Ꭵᗱᗎᔓᔕ옷Ⓞᙁↀ⚪𖣠.PNG")
cv2.imencode('.png',cv2.normalize(255-ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ*255,None,0,255,cv2.NORM_MINMAX).astype(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.uint8))[1].tofile(f"ꓚИꟌ.𖣠⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖣓✀ⵙ⚭𖣓❋⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪❋𖣓⚭ⵙ✀𖣓ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪𖣠.PNG")
cv2.imencode('.png',65535-ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥOꗳᔓᔕИNᗩᎥ𖧷〇ᗱᗎᑐᑕИNᗩ𖧷ᔓᔕꖎↀ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏ〇𖧷ꖎ8〇𓃎·ⵙ〇ⵙ〇ⵙ·𓃎〇8ꖎ𖧷〇ᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ↀꖎᔓᔕ𖧷ᗩИNᑐᑕᗱᗎ〇𖧷ᎥᗩИNᔓᔕꗳOᎥᙏ〇ꖎᙏᗩᕀᕊᗱᗎⵙ)[1].tofile(f"ꓚИꟌ.𖣠⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖣓✀ⵙ⚭𖣓⠿·⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪·⠿𖣓⚭ⵙ✀𖣓ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪𖣠.PNG")
cv2.imencode('.png',cv2.normalize(ⵙᗱᗎᕀᕊᗩᙏꖎ〇ↀᗱᗎᙁᗱᗎ8ᗩᙁ〇ᗱᗎᙁߊꖎ𖧷ᙁᑎᙏⵙ〇ⵙ〇ⵙᙏᑎᙁ𖧷ꖎߊᙁᗱᗎ〇ᙁᗩ8ᗱᗎᙁᗱᗎↀ〇ꖎᙏᗩᕀᕊᗱᗎⵙ,None,0,255,cv2.NORM_MINMAX).astype(ⵙ人ߊᙏᑎИNⵙ〇ⵙ〇ⵙИNᑎᙏߊ人ⵙ.uint8))[1].tofile(f"ꓚИꟌ.𖣠⚪ᔓᔕᙁᗱᗎᑐᑕ𖣓ↀᗱᗎᙁᗱᗎ⚭ᗩᙁ𖣓ᎥⓄᙁⓄᑐᑕ⚪⊚⚪{ⵙᗱᗎᙏᗩИN〇ᗱᗎᙁꖎꗳ〇𖧷ᑎߊИNꖎⵙ〇ⵙ〇ⵙꖎИNߊᑎ𖧷〇ꗳꖎᙁᗱᗎ〇ИNᗩᙏᗱᗎⵙ}⚪⊚⚪ᑐᑕⓄᙁⓄᎥ𖣓ᙁᗩ⚭ᗱᗎᙁᗱᗎↀ𖣓ᑐᑕᗱᗎᙁᔓᔕ⚪𖣠.PNG")
exit()

1064
ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/ê“šVƧ.⊿⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᎥⓄꗳ⛯ᗱᗎ✀ᗱᗎᑎⓄ옷ᙁⵙᔓᔕ❁옷ߊᗩᎥᕀᕊↀᗱᗎߊᗩ옷ᔓᔕ🝊ᔓᔕ⚭ᙏⓄᑐᑕ᳀ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ𐫱ИNⓄⵙᔓᔕⵙᑐᑕᗱᗎᎥߊ𖣚ↀᗱᗎ⎵ⵙᙁᗩᗱᗎↀⵙ᪣ИNⓄⵙ✀ᑐᑕИNᑎꗳ𖡹ᔓᔕᑎⵙ⚭ᗩꗳ𖡗⚪𔗢⚪🞋⚪𔗢⚪𖡗ꗳᗩ⚭ⵙᑎᔓᔕ𖡹ꗳᑎИNᑐᑕ✀ⵙⓄИN᪣ⵙↀᗱᗎᗩᙁⵙ⎵ᗱᗎↀ𖣚ߊᎥᗱᗎᑐᑕⵙᔓᔕⵙⓄИN𐫱ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ᳀ᑐᑕⓄᙏ⚭ᔓᔕ🝊ᔓᔕ옷ᗩߊᗱᗎↀᕀᕊᎥᗩߊ옷❁ᔓᔕⵙᙁ옷Ⓞᑎᗱᗎ✀ᗱᗎ⛯ꗳⓄᎥ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪⊿.SVG Normal file

File diff suppressed because one or more lines are too long

689
ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/ꞰИ.⊿⚪✀ИNᗱᗎⵙↀᗩᎥᕀᕊ◯ᗱᗎᑐᑕИNᗩ✀ᔓᔕⵙↀ◯ИNᗩᗱᗎↀⵙᙁᑐᑕᑎᗱᗎ⚪✺⚪ⵙ⚪✺⚪ᗱᗎᑎᑐᑕᙁⵙↀᗱᗎᗩИN◯ↀⵙᔓᔕ✀ᗩИNᑐᑕᗱᗎ◯ᕀᕊᎥᗩↀⵙᗱᗎИN✀⚪⊿.NK Normal file

File diff suppressed because one or more lines are too long