0
0
mirror of http://CODE.RHODECODE.COM/u/O/O/O synced 2024-11-29 16:48:40 -05:00
O/ð–£ âšªâˆ£ââˆ£âœ€âœ»á•­á•®á—©ßŠàŽ±âšªð”—¢âšªðŸž‹âšªð”—¢âšªàŽ±ßŠá—©á•­á•®âœ»âœ€âˆ£ââˆ£âšªð–£ /𖣠⚪ИNⓄꖎ✀ᑐᑕИNᑎꗳ𖡗ᔓᔕᑎꖎ⚭ᗩꗳ⚪𔗢⚪🞋⚪𔗢⚪ꗳᗩ⚭ꖎᑎᔓᔕ𖡗ꗳᑎИNᑐᑕ✀ꖎⓄИN⚪𖣠/𖣠⚪ᗱᗎᎥᑎ✀ᗩᗯᎥᑎᑐᑕ⚪𔗢⚪🞋⚪𔗢⚪ᑐᑕᑎᎥᗯᗩ✀ᑎᎥᗱᗎ⚪𖣠/𖣠⚪ᔓᔕᎥᗱᗎИNᎥⓄᑐᑕ𖣓✀옷ᕀᕊꖎᗩᎥ✀ᔓᔕ⚪𔗢⚪🞋⚪𔗢⚪ᔓᔕ✀Ꭵᗩꖎᕀᕊ옷✀𖣓ᑐᑕⓄᎥИNᗱᗎᎥᔓᔕ⚪𖣠/𖣠⚪✀ИNᗱᗎꖎᗝᗩᎥᕀᕊ⚪𔗢⚪🞋⚪𔗢⚪ᕀᕊᎥᗩᗝꖎᗱᗎИN✀⚪𖣠/YꟌ.𖣠⚪ᗱᗎ✀ᗱᗎᑎⓄ옷ᙁⵙᔓᔕ❁✀ИNᗱᗎⵙↀᗩᎥᕀᕊ𖀞ᙏᎥⓄꗳᔓᔕИNᗩᎥ✀𖥟ᗱᗎᑐᑕИNᗩ✀ᔓᔕⵙↀ𖣚ИNᗩᗱᗎↀⵙᙁᑐᑕᑎᗱᗎ𖥞⚪𔗢⚪🞋⚪𔗢⚪𖥞ᗱᗎᑎᑐᑕᙁⵙↀᗱᗎᗩИN𖣚ↀⵙᔓᔕ✀ᗩИNᑐᑕᗱᗎ𖥟✀ᎥᗩИNᔓᔕꗳⓄᎥᙏ𖀞ᕀᕊᎥᗩↀⵙᗱᗎИN✀❁ᔓᔕⵙᙁ옷Ⓞᑎᗱᗎ✀ᗱᗎ⚪𖣠.PY

81 lines
21 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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Ꭵⵙ=(1.65625/128)/4.3393447 # 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ᙁↀⵙ=ⵙ𖧷옷ᕀᕊꖎᗱᗎ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗎꖎᕀᕊ옷𖧷ⵙ*ⵙ옷𖧷ↀꖎᗯⵙ〇ⵙ〇ⵙᗯꖎↀ𖧷옷ⵙ/16
ⵙᗱᗎᕀᕊᗩᙏꖎ〇ᙏᎥ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()