Some checks failed
deploy / build-n-publish (push) Has been cancelled
lint / lint (push) Has been cancelled
build / build_cpu (3.7, 1.5.1, torch1.5, 0.6.1) (push) Has been cancelled
build / build_cpu (3.7, 1.6.0, torch1.6, 0.7.0) (push) Has been cancelled
build / build_cpu (3.7, 1.7.0, torch1.7, 0.8.1) (push) Has been cancelled
build / build_cpu (3.7, 1.8.0, torch1.8, 0.9.0) (push) Has been cancelled
build / build_cpu (3.7, 1.9.0, torch1.9, 0.10.0) (push) Has been cancelled
build / build_cuda101 (3.7, 1.5.1+cu101, torch1.5, 0.6.1+cu101) (push) Has been cancelled
build / build_cuda101 (3.7, 1.6.0+cu101, torch1.6, 0.7.0+cu101) (push) Has been cancelled
build / build_cuda101 (3.7, 1.7.0+cu101, torch1.7, 0.8.1+cu101) (push) Has been cancelled
build / build_cuda101 (3.7, 1.8.0+cu101, torch1.8, 0.9.0+cu101) (push) Has been cancelled
build / build_cuda102 (3.6, 1.9.0+cu102, torch1.9, 0.10.0+cu102) (push) Has been cancelled
build / build_cuda102 (3.7, 1.9.0+cu102, torch1.9, 0.10.0+cu102) (push) Has been cancelled
build / build_cuda102 (3.8, 1.9.0+cu102, torch1.9, 0.10.0+cu102) (push) Has been cancelled
build / build_cuda102 (3.9, 1.9.0+cu102, torch1.9, 0.10.0+cu102) (push) Has been cancelled
build / test_windows (windows-2022, cpu, 3.8) (push) Has been cancelled
build / test_windows (windows-2022, cu111, 3.8) (push) Has been cancelled
- Add golf1/2/4/7/8 dataset classes for semantic segmentation - Add kneron-specific configs (meconfig series, kn_stdc1_golf4class) - Organize scripts into tools/check/ and tools/kneron/ - Add kneron_preprocessing module - Update README with quick-start guide - Update .gitignore to exclude data dirs, onnx, nef outputs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
42 lines
895 B
Python
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 |