2024-08-09 10:20:27 +00:00
import cv2,OpenEXR,Imath
2024-08-02 15:49:52 +00:00
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ᴥⵙ)
2024-08-09 10:20:27 +00:00
ⵙↀᙁO옷ᔓᔕᗱᗴᴥ옷𖧷ⵙ𖧷ИNᑎOᑐᑕⵙᙁᗱᗴꕤꖴߦⵙ〇 ⵙ〇 ⵙߦꖴꕤᗱᗴᙁⵙᑐᑕOᑎИN𖧷ⵙ𖧷옷ᴥᗱᗴᔓᔕ옷Oᙁↀⵙ=ⵙ𖧷옷ᕤᕦꖴᗱᗴ옷ⵙ〇ⵙ〇ⵙ옷ᗱᗴꖴᕤᕦ옷𖧷ⵙ*ⵙ옷𖧷ↀꖴᗯⵙ〇ⵙ〇ⵙᗯꖴↀ𖧷옷ⵙ/16
2024-08-02 15:49:52 +00:00
ⵙᗱᗴᕤᕦᗩᙏꖴ〇 ᙏᴥ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()