0
画像が正規化されているかどうかを確認するスクリプトを作成しています。私は画像を分析するためにPython PNGモジュールを使用しています。それをテストするために、Photoshopで白黒ピクセルの2ピクセルラインからなる16ビットイメージを作成しました。 私のスクリプトは、黒いピクセル(0)を正しく識別しますが、白いピクセルに対して予想していた値(65535)とは異なる値(65533)を返します。16ビットグレースケールPNG画像のPython画像処理
なぜこのようなことが起こるのか理解できません。スクリプトに何か問題がありますか、またはPhotoshopでイメージを保存する方法と関連していますか?
ミニマルテスト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"