이미지가 정규화되었는지 확인하는 스크립트를 작성하고 있습니다. 파이썬 PNG 모듈을 사용하여 이미지를 분석하고 있습니다. 그것을 테스트하기 위해 포토샵에서 흑백 픽셀을 가진 2 픽셀 라인으로 구성된 16 비트 이미지를 만들었습니다. 내 스크립트는 검정 픽셀 (0)을 올바르게 식별하지만 흰색 픽셀에 대해 예상했던 것 (65535)과 다른 값 (65533)을 제공합니다.16 비트 그레이 스케일 png 이미지 용 파이썬 이미지 처리
왜 이렇게되는지 이해할 수 없습니다. 스크립트에 문제가 있거나 포토샵에서 이미지를 저장하는 것과 관련이 있습니까?
최소한의 테스트 PNG 이미지 : http://i.imgur.com/70D0F.png
스크립트 :
#!/usr/bin/python
import sys
import png # https://pypi.python.org/pypi/pypng
if len(sys.argv) != 2:
print "Invalid number of arguments (",len(sys.argv),").\nUsage: python getMinMaxColor.py png_file"
sys.exit(-1)
pngFilePath = sys.argv[1]
f = open(pngFilePath, 'rb')
r = png.Reader(file=f)
k = r.read()
bitDepth = 16
if k[3]['bitdepth'] != None:
bitDepth = k[3]['bitdepth']
absMaxColor = 2**bitDepth-1
maxColor = -1
minColor = absMaxColor+1
print "Content:"
for line in k[2]:
for color in line:
print color
if (color > maxColor):
maxColor = color
if (color < minColor):
minColor = color
f.close()
print "\n"
print "Min Color:", minColor
print "Max Color:", maxColor, "(max:", absMaxColor, ")"
if minColor == 0 and maxColor == absMaxColor:
print "Image is normalized"
else:
print "Image is not normalized"