mirror of
http://CODE.RHODECODE.COM/u/O/O/O
synced 2024-11-26 15:48:37 -05:00
81 lines
21 KiB
Plaintext
81 lines
21 KiB
Plaintext
|
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()
|