2026-03-11 16:13:59 +08:00

42 lines
895 B
Python

import numpy as np
from PIL import Image
def twos_complement(value):
value = int(value)
# msb = (value & 0x8000) * (1/np.power(2, 15))
msb = (value & 0x8000) >> 15
if msb == 1:
if (((~value) & 0xFFFF) + 1) >= 0xFFFF:
result = ((~value) & 0xFFFF)
else:
result = (((~value) & 0xFFFF) + 1)
result = result * (-1)
else:
result = value
return result
def twos_complement_pix(value):
h, _ = value.shape
for i in range(h):
value[i, 0] = twos_complement(value[i, 0])
return value
def clip(value, mini, maxi):
if value < mini:
result = mini
elif value > maxi:
result = maxi
else:
result = value
return result
def clip_pix(value, mini, maxi):
h, _ = value.shape
for i in range(h):
value[i, 0] = clip(value[i, 0], mini, maxi)
return value