pylint work, wraps up much of jp2k module. #71

This commit is contained in:
John Evans 2013-07-09 08:16:37 -04:00
commit bb705db461
7 changed files with 195 additions and 187 deletions

View file

@ -6,13 +6,13 @@ How do I...?
Read the lowest resolution thumbnail?
=====================================
Printing the Jp2k object should reveal the number of resolutions (look in the
COD segment section), but you can take a shortcut by supplying -1 as the reduce
level. ::
COD segment section), but you can take a shortcut by supplying -1 as the
resolution level. ::
>>> import glymur
>>> file = glymur.data.nemo()
>>> j = glymur.Jp2k(file)
>>> thumbnail = j.read(reduce=-1)
>>> thumbnail = j.read(rlevel=-1)
Display metadata?
=================

View file

@ -44,22 +44,25 @@ _CMPFUNC = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p, ctypes.c_void_p)
def _default_error_handler(msg, _):
"""Default error handler callback for openjpeg library."""
msg = "OpenJPEG library error: {0}".format(msg.decode('utf-8').rstrip())
_opj2.set_error_message(msg)
def _default_info_handler(msg, _):
"""Default info handler callback for openjpeg library."""
print("[INFO] {0}".format(msg.decode('utf-8').rstrip()))
def _default_warning_handler(library_msg, _):
"""Default warning handler callback for openjpeg library."""
library_msg = library_msg.decode('utf-8').rstrip()
msg = "OpenJPEG library warning: {0}".format(library_msg)
warnings.warn(msg)
_error_callback = _CMPFUNC(_default_error_handler)
_info_callback = _CMPFUNC(_default_info_handler)
_warning_callback = _CMPFUNC(_default_warning_handler)
_ERROR_CALLBACK = _CMPFUNC(_default_error_handler)
_INFO_CALLBACK = _CMPFUNC(_default_info_handler)
_WARNING_CALLBACK = _CMPFUNC(_default_warning_handler)
class Jp2k(Jp2kBox):
@ -86,10 +89,12 @@ class Jp2k(Jp2kBox):
mode : str, optional
The mode used to open the file.
"""
Jp2kBox.__init__(self)
self.filename = filename
self.mode = mode
self.box = []
self.offset = 0
self._codec_format = None
self._file_size = 0
# Parse the file for JP2/JPX contents only if we are reading it.
if mode == 'rb':
@ -117,11 +122,11 @@ class Jp2k(Jp2kBox):
self.length = stat.st_size
self._file_size = stat.st_size
with open(self.filename, 'rb') as f:
with open(self.filename, 'rb') as fptr:
# Make sure we have a JPEG2000 file. It could be either JP2 or
# J2C. Check for J2C first, single box in that case.
read_buffer = f.read(2)
read_buffer = fptr.read(2)
signature, = struct.unpack('>H', read_buffer)
if signature == 0xff4f:
self._codec_format = _opj2.CODEC_J2K
@ -135,21 +140,23 @@ class Jp2k(Jp2kBox):
# First 4 bytes should be 12, the length of the 'jP ' box.
# 2nd 4 bytes should be the box ID ('jP ').
# 3rd 4 bytes should be the box signature (13, 10, 135, 10).
f.seek(0)
read_buffer = f.read(12)
fptr.seek(0)
read_buffer = fptr.read(12)
values = struct.unpack('>I4s4B', read_buffer)
L = values[0]
T = values[1]
box_length = values[0]
box_id = values[1]
signature = values[2:]
if L != 12 or T != b'jP ' or signature != (13, 10, 135, 10):
if ((box_length != 12) or (box_id != b'jP ') or
(signature != (13, 10, 135, 10))):
msg = '{0} is not a JPEG 2000 file.'.format(self.filename)
raise IOError(msg)
# Back up and start again, we know we have a superbox (box of
# boxes) here.
f.seek(0)
self.box = self.parse_superbox(f)
fptr.seek(0)
self.box = self.parse_superbox(fptr)
# pylint: disable-msg=W0221
def write(self, img_array, cratios=None, eph=False, psnr=None, numres=None,
cbsize=None, psizes=None, grid_offset=None, sop=False,
subsam=None, tilesize=None, prog=None, modesw=None,
@ -214,7 +221,7 @@ class Jp2k(Jp2kBox):
>>> import glymur
>>> jfile = glymur.data.nemo()
>>> jp2 = glymur.Jp2k(jfile)
>>> data = jp2.read(reduce=1)
>>> data = jp2.read(rlevel=1)
>>> from tempfile import NamedTemporaryFile
>>> tfile = NamedTemporaryFile(suffix='.jp2', delete=False)
>>> j = Jp2k(tfile.name, mode='wb')
@ -224,8 +231,8 @@ class Jp2k(Jp2kBox):
cparams = _opj2.set_default_encoder_parameters()
outfile = self.filename.encode()
n = _opj2.PATH_LEN - len(outfile)
outfile += b'0' * n
num_pad_bytes = _opj2.PATH_LEN - len(outfile)
outfile += b'0' * num_pad_bytes
cparams.outfile = outfile
if self.filename[-4:].lower() == '.jp2':
@ -241,19 +248,19 @@ class Jp2k(Jp2kBox):
cparams.cp_disto_alloc = 1
if cbsize is not None:
w = cbsize[1]
h = cbsize[0]
if h * w > 4096 or h < 4 or w < 4:
width = cbsize[1]
height = cbsize[0]
if height * width > 4096 or height < 4 or width < 4:
msg = "Code block area cannot exceed 4096. "
msg += "Code block height and width must be larger than 4."
raise RuntimeError(msg)
if ((math.log(h, 2) != math.floor(math.log(h, 2)) or
math.log(w, 2) != math.floor(math.log(w, 2)))):
if ((math.log(height, 2) != math.floor(math.log(height, 2)) or
math.log(width, 2) != math.floor(math.log(width, 2)))):
msg = "Bad code block size ({0}, {1}), "
msg += "must be powers of 2."
raise IOError(msg.format(h, w))
cparams.cblockw_init = w
cparams.cblockh_init = h
raise IOError(msg.format(height, width))
cparams.cblockw_init = width
cparams.cblockh_init = height
if cratios is not None:
cparams.tcp_numlayers = len(cratios)
@ -269,9 +276,10 @@ class Jp2k(Jp2kBox):
cparams.image_offset_y0 = grid_offset[0]
if modesw is not None:
for x in range(6):
if modesw & (1 << x):
cparams.mode |= (1 << x)
for shift in range(6):
power_of_two = 1 << shift
if modesw & power_of_two:
cparams.mode |= power_of_two
if numres is not None:
cparams.numresolution = numres
@ -402,12 +410,12 @@ class Jp2k(Jp2kBox):
codec = _opj2.create_compress(codec_fmt)
if verbose:
_opj2.set_info_handler(codec, _info_callback)
_opj2.set_info_handler(codec, _INFO_CALLBACK)
else:
_opj2.set_info_handler(codec, None)
_opj2.set_warning_handler(codec, _warning_callback)
_opj2.set_error_handler(codec, _error_callback)
_opj2.set_warning_handler(codec, _WARNING_CALLBACK)
_opj2.set_error_handler(codec, _ERROR_CALLBACK)
_opj2.setup_encoder(codec, cparams, image)
strm = _opj2.stream_create_default_file_stream_v3(self.filename, False)
_opj2.start_compress(codec, image, strm)
@ -559,8 +567,8 @@ class Jp2k(Jp2kBox):
Parameters
----------
reduce : int, optional
Factor by which to reduce output resolution. Use -1 to get the
rlevel : int, optional
Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail. This is the only keyword option
available to use when only OpenJPEG version 1.5.1 is present.
layer : int, optional
@ -594,7 +602,7 @@ class Jp2k(Jp2kBox):
Read the lowest resolution thumbnail.
>>> thumbnail = jp.read(reduce=-1)
>>> thumbnail = jp.read(rlevel=-1)
>>> thumbnail.shape
(728, 1296, 3)
"""
@ -604,13 +612,13 @@ class Jp2k(Jp2kBox):
img = self._read_openjpeg(**kwargs)
return img
def _read_openjpeg(self, reduce=0, verbose=False):
def _read_openjpeg(self, rlevel=0, verbose=False):
"""Read a JPEG 2000 image using libopenjpeg.
Parameters
----------
reduce : int, optional
Factor by which to reduce output resolution. Use -1 to get the
rlevel : int, optional
Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail.
verbose : bool, optional
Print informational messages produced by the OpenJPEG library.
@ -640,7 +648,7 @@ class Jp2k(Jp2kBox):
# Set decoding parameters.
dparameters = _opj.dparameters_t()
_opj.set_default_decoder_parameters(ctypes.byref(dparameters))
dparameters.cp_reduce = reduce
dparameters.cp_reduce = rlevel
dparameters.decod_format = self._codec_format
infile = self.filename.encode()
@ -651,11 +659,11 @@ class Jp2k(Jp2kBox):
dinfo = _opj.create_decompress(dparameters.decod_format)
event_mgr = _opj.event_mgr_t()
info_handler = ctypes.cast(_info_callback, ctypes.c_void_p)
info_handler = ctypes.cast(_INFO_CALLBACK, ctypes.c_void_p)
event_mgr.info_handler = info_handler if verbose else None
event_mgr.warning_handler = ctypes.cast(_warning_callback,
event_mgr.warning_handler = ctypes.cast(_WARNING_CALLBACK,
ctypes.c_void_p)
event_mgr.error_handler = ctypes.cast(_error_callback,
event_mgr.error_handler = ctypes.cast(_ERROR_CALLBACK,
ctypes.c_void_p)
_opj.set_event_mgr(dinfo, ctypes.byref(event_mgr))
@ -719,7 +727,7 @@ class Jp2k(Jp2kBox):
return data
def _read_openjp2(self, reduce=0, layer=0, area=None, tile=None,
def _read_openjp2(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False):
"""Read a JPEG 2000 image using libopenjp2.
@ -727,8 +735,8 @@ class Jp2k(Jp2kBox):
----------
layer : int, optional
Number of quality layer to decode.
reduce : int, optional
Factor by which to reduce output resolution. Use -1 to get the
rlevel : int, optional
Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail.
area : tuple, optional
Specifies decoding image area,
@ -756,7 +764,7 @@ class Jp2k(Jp2kBox):
msg = "Components must all have the same subsampling factors."
raise RuntimeError(msg)
img_array = self._read_common(reduce=reduce,
img_array = self._read_common(rlevel=rlevel,
layer=layer,
area=area,
tile=tile,
@ -769,7 +777,7 @@ class Jp2k(Jp2kBox):
return img_array
def _read_common(self, reduce=0, layer=0, area=None, tile=None,
def _read_common(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False, as_bands=False):
"""Read a JPEG 2000 image.
@ -777,8 +785,8 @@ class Jp2k(Jp2kBox):
----------
layer : int, optional
Number of quality layer to decode.
reduce : int, optional
Factor by which to reduce output resolution.
rlevel : int, optional
Factor by which to rlevel output resolution.
area : tuple, optional
Specifies decoding image area,
(first_row, first_col, last_row, last_col)
@ -805,12 +813,12 @@ class Jp2k(Jp2kBox):
dparam.cp_layer = layer
if reduce == -1:
if rlevel == -1:
# Get the lowest resolution thumbnail.
codestream = self.get_codestream()
reduce = codestream.segment[2].spcod[4]
rlevel = codestream.segment[2].spcod[4]
dparam.cp_reduce = reduce
dparam.cp_reduce = rlevel
if area is not None:
if area[0] < 0 or area[1] < 0:
msg = "Upper left corner coordinates must be nonnegative: {0}"
@ -836,10 +844,10 @@ class Jp2k(Jp2kBox):
codec = _opj2.create_decompress(self._codec_format)
stack.callback(_opj2.destroy_codec, codec)
_opj2.set_error_handler(codec, _error_callback)
_opj2.set_warning_handler(codec, _warning_callback)
_opj2.set_error_handler(codec, _ERROR_CALLBACK)
_opj2.set_warning_handler(codec, _WARNING_CALLBACK)
if verbose:
_opj2.set_info_handler(codec, _info_callback)
_opj2.set_info_handler(codec, _INFO_CALLBACK)
else:
_opj2.set_info_handler(codec, None)
@ -905,7 +913,7 @@ class Jp2k(Jp2kBox):
return data
def read_bands(self, reduce=0, layer=0, area=None, tile=None,
def read_bands(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False):
"""Read a JPEG 2000 image.
@ -917,8 +925,8 @@ class Jp2k(Jp2kBox):
----------
layer : int, optional
Number of quality layer to decode.
reduce : int, optional
Factor by which to reduce output resolution.
rlevel : int, optional
Factor by which to rlevel output resolution.
area : tuple, optional
Specifies decoding image area,
(first_row, first_col, last_row, last_col)
@ -941,7 +949,7 @@ class Jp2k(Jp2kBox):
>>> import glymur
>>> jfile = glymur.data.nemo()
>>> jp = glymur.Jp2k(jfile)
>>> components_lst = jp.read_bands(reduce=1)
>>> components_lst = jp.read_bands(rlevel=1)
Raises
------
@ -952,7 +960,7 @@ class Jp2k(Jp2kBox):
msg = "Requires openjp2 library."
raise NotImplementedError(msg)
lst = self._read_common(reduce=reduce,
lst = self._read_common(rlevel=rlevel,
layer=layer,
area=area,
tile=tile,
@ -1006,8 +1014,8 @@ class Jp2k(Jp2kBox):
raise RuntimeError(msg)
fptr.seek(box[0].offset)
read_buffer = fptr.read(8)
(L, T) = struct.unpack('>I4s', read_buffer)
if L == 1:
(box_length, _) = struct.unpack('>I4s', read_buffer)
if box_length == 1:
# Seek past the XL field.
read_buffer = fptr.read(8)
codestream = Codestream(fptr, header_only=header_only)

View file

@ -46,7 +46,7 @@ class TestCallbacks(unittest.TestCase):
# Verify that we get the expected stdio output when our internal info
# callback handler is enabled.
j = glymur.Jp2k(self.j2kfile)
d = j.read(reduce=1, verbose=True, area=(0, 0, 200, 150))
d = j.read(rlevel=1, verbose=True, area=(0, 0, 200, 150))
actual = sys.stdout.getvalue().strip()
lines = ['[INFO] Start to read j2k main header (0).',
@ -92,7 +92,7 @@ class TestCallbacks15(unittest.TestCase):
# Verify that we get the expected stdio output when our internal info
# callback handler is enabled.
j = glymur.Jp2k(self.j2kfile)
d = j.read(reduce=1, verbose=True)
d = j.read(rlevel=1, verbose=True)
actual = sys.stdout.getvalue().strip()
regex = re.compile(r"""\[INFO\]\stile\s1\sof\s1\s+

View file

@ -88,11 +88,11 @@ class TestJp2k(unittest.TestCase):
with self.assertWarns(UserWarning) as cw:
jp2k = Jp2k(self._bad_xml_file)
def test_reduce_max(self):
# Verify that reduce=-1 gets us the lowest resolution image
def test_rlevel_max(self):
# Verify that rlevel=-1 gets us the lowest resolution image
j = Jp2k(self.j2kfile)
thumbnail1 = j.read(reduce=-1)
thumbnail2 = j.read(reduce=5)
thumbnail1 = j.read(rlevel=-1)
thumbnail2 = j.read(rlevel=5)
np.testing.assert_array_equal(thumbnail1, thumbnail2)
self.assertEqual(thumbnail1.shape, (25, 15, 3))
@ -120,11 +120,11 @@ class TestJp2k(unittest.TestCase):
# End corner must be >= start corner
d = j.read(area=(10, 10, 8, 8))
def test_reduce_too_high(self):
def test_rlevel_too_high(self):
# Verify that we error out appropriately if not given a JPEG 2000 file.
j = Jp2k(self.jp2file)
with self.assertRaises(IOError):
d = j.read(reduce=6)
d = j.read(rlevel=6)
def test_not_JPEG2000(self):
# Verify that we error out appropriately if not given a JPEG 2000 file.
@ -167,7 +167,7 @@ class TestJp2k(unittest.TestCase):
def test_write_cprl(self):
# Issue 17
j = Jp2k(self.jp2file)
expdata = j.read(reduce=1)
expdata = j.read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb')
ofile.write(expdata, prog='CPRL')
@ -529,7 +529,7 @@ class TestJp2k(unittest.TestCase):
def test_asoc_label_box(self):
# Construct a fake file with an asoc and a label box, as
# OpenJPEG doesn't have such a file.
data = Jp2k(self.jp2file).read(reduce=1)
data = Jp2k(self.jp2file).read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
j = Jp2k(tfile.name, 'wb')
j.write(data)
@ -600,10 +600,10 @@ class TestJp2k(unittest.TestCase):
:\sdx=1\sdy=0''', re.VERBOSE)
if sys.hexversion < 0x03020000:
with self.assertRaisesRegexp((IOError, OSError), regexp) as ce:
d = j.read(reduce=1)
d = j.read(rlevel=1)
else:
with self.assertRaisesRegex((IOError, OSError), regexp) as ce:
d = j.read(reduce=1)
d = j.read(rlevel=1)
def test_xmp_attribute(self):
# Verify that we can read the XMP packet in our shipping example file.
@ -699,7 +699,7 @@ class TestJp2k15(unittest.TestCase):
# and OPJ_DATA_ROOT is not set. We need at least one
# working JP2 test.
j2k = Jp2k(self.jp2file)
d = j2k.read(reduce=1)
d = j2k.read(rlevel=1)
def test_basic_j2k(self):
# This test is only useful when openjp2 is not available

View file

@ -49,7 +49,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx')
pgxdata = read_pgx(pgxfile)
@ -62,7 +62,7 @@ class TestSuite(unittest.TestCase):
# really know what to do with it. Just ignore.
warnings.simplefilter("ignore")
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx')
pgxdata = read_pgx(pgxfile)
@ -72,7 +72,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_03r0.pgx')
pgxdata = read_pgx(pgxfile)
@ -81,7 +81,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_03_j2k_r1(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1)
jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_03r1.pgx')
@ -92,7 +92,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3)
jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_04.pgx')
@ -105,7 +105,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_05_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_05.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read_bands(reduce=3)
jpdata = jp2k.read_bands(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_05.pgx')
@ -117,7 +117,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_06_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_06.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3)
jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_06.pgx')
@ -142,7 +142,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=5)
jpdata = jp2k.read(rlevel=5)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_08.pgx')
@ -154,7 +154,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2)
jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_09.pgx')
@ -167,7 +167,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_10_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_10.pgx')
@ -179,7 +179,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_11.pgx')
@ -191,7 +191,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_12.pgx')
@ -203,7 +203,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_13.pgx')
@ -215,7 +215,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2)
jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_14.pgx')
@ -227,7 +227,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_15r0.pgx')
@ -238,7 +238,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_15_j2k_r1(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1)
jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_15r1.pgx')
@ -249,7 +249,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_16.pgx')
@ -260,7 +260,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_01.pgx')
@ -272,7 +272,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3)
jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_02.pgx')
@ -288,7 +288,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_03.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3)
jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_03.pgx')
@ -304,7 +304,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_04r0.pgx')
@ -318,7 +318,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_04_j2k_r3(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3)
jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_04r3.pgx')
@ -332,7 +332,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_05_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_05.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=4)
jpdata = jp2k.read(rlevel=4)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_05.pgx')
@ -347,7 +347,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_06_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1)
jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_06.pgx')
@ -362,7 +362,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_07_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_07.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_07.pgx')
@ -376,7 +376,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -390,7 +390,7 @@ class TestSuite(unittest.TestCase):
# really know what to do with it. Just ignore.
warnings.simplefilter("ignore")
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -400,7 +400,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -410,7 +410,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -498,7 +498,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1)
jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -515,7 +515,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -524,7 +524,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_10_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -541,7 +541,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -551,7 +551,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -561,7 +561,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -582,7 +582,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -599,7 +599,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -608,7 +608,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -617,7 +617,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -626,7 +626,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -1140,51 +1140,51 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p1_04_j2k_50_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 1024, 1024), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(0, 0, 1024, 1024), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[0:256, 0:256])
def test_NR_DEC_p1_04_j2k_51_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(640, 512, 768, 640), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(640, 512, 768, 640), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[160:192, 128:160])
def test_NR_DEC_p1_04_j2k_52_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(896, 896, 1024, 1024), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(896, 896, 1024, 1024), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[224:352, 224:352])
def test_NR_DEC_p1_04_j2k_53_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(500, 100, 800, 300), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(500, 100, 800, 300), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[125:200, 25:75])
def test_NR_DEC_p1_04_j2k_54_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 260, 600, 360), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(520, 260, 600, 360), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:150, 65:90])
def test_NR_DEC_p1_04_j2k_55_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 260, 660, 360), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(520, 260, 660, 360), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:165, 65:90])
def test_NR_DEC_p1_04_j2k_56_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 360, 600, 400), reduce=2)
odata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(520, 360, 600, 400), rlevel=2)
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:150, 90:100])
def test_NR_DEC_p1_04_j2k_57_decode(self):
@ -1201,8 +1201,8 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
tdata = jp2k.read(tile=63, reduce=2) # last tile
odata = jp2k.read(reduce=2)
tdata = jp2k.read(tile=63, rlevel=2) # last tile
odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(tdata, odata[224:256, 224:256])
def test_NR_DEC_p1_04_j2k_59_decode(self):
@ -1219,8 +1219,8 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
tdata = jp2k.read(tile=12, reduce=1) # 2nd row, 5th column
odata = jp2k.read(reduce=1)
tdata = jp2k.read(tile=12, rlevel=1) # 2nd row, 5th column
odata = jp2k.read(rlevel=1)
np.testing.assert_array_equal(tdata, odata[64:128, 256:320])
@unittest.skip("fprintf stderr output in r2343.")
@ -1283,45 +1283,45 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p1_06_j2k_68_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 12, 12), reduce=1)
odata = jp2k.read(reduce=1)
ssdata = jp2k.read(area=(0, 0, 12, 12), rlevel=1)
odata = jp2k.read(rlevel=1)
np.testing.assert_array_equal(ssdata, odata[0:6, 0:6])
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_69_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(1, 8, 8, 11), reduce=1)
ssdata = jp2k.read(area=(1, 8, 8, 11), rlevel=1)
self.assertEqual(ssdata.shape, (3, 2, 3))
def test_NR_DEC_p1_06_j2k_70_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(9, 9, 12, 12), reduce=1)
ssdata = jp2k.read(area=(9, 9, 12, 12), rlevel=1)
self.assertEqual(ssdata.shape, (1, 1, 3))
def test_NR_DEC_p1_06_j2k_71_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(10, 4, 12, 10), reduce=1)
ssdata = jp2k.read(area=(10, 4, 12, 10), rlevel=1)
self.assertEqual(ssdata.shape, (1, 3, 3))
def test_NR_DEC_p1_06_j2k_72_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(3, 3, 9, 9), reduce=1)
ssdata = jp2k.read(area=(3, 3, 9, 9), rlevel=1)
self.assertEqual(ssdata.shape, (3, 3, 3))
def test_NR_DEC_p1_06_j2k_73_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(4, 4, 7, 7), reduce=1)
ssdata = jp2k.read(area=(4, 4, 7, 7), rlevel=1)
self.assertEqual(ssdata.shape, (2, 2, 3))
def test_NR_DEC_p1_06_j2k_74_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(4, 4, 5, 5), reduce=1)
ssdata = jp2k.read(area=(4, 4, 5, 5), rlevel=1)
self.assertEqual(ssdata.shape, (1, 1, 3))
def test_NR_DEC_p1_06_j2k_75_decode(self):
@ -1329,7 +1329,7 @@ class TestSuite(unittest.TestCase):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
with self.assertRaises((IOError, OSError)) as ce:
ssdata = jp2k.read(area=(9, 9, 12, 12), reduce=2)
ssdata = jp2k.read(area=(9, 9, 12, 12), rlevel=2)
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_76_decode(self):
@ -1378,7 +1378,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=0, reduce=2)
tiledata = jp2k.read(tile=0, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_81_decode(self):
@ -1387,7 +1387,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=5, reduce=2)
tiledata = jp2k.read(tile=5, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_82_decode(self):
@ -1396,7 +1396,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=9, reduce=2)
tiledata = jp2k.read(tile=9, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_83_decode(self):
@ -1406,14 +1406,14 @@ class TestSuite(unittest.TestCase):
with warnings.catch_warnings():
warnings.simplefilter("ignore")
with self.assertRaises((IOError, OSError)) as ce:
tiledata = jp2k.read(tile=15, reduce=2)
tiledata = jp2k.read(tile=15, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_84_decode(self):
# Just read the data, don't bother verifying.
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile)
data = jp2k.read(reduce=4)
data = jp2k.read(rlevel=4)
def test_NR_DEC_p0_04_j2k_85_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
@ -1460,43 +1460,43 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p0_04_j2k_91_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 256, 256), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(0, 0, 256, 256), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[0:64, 0:64], ssdata)
def test_NR_DEC_p0_04_j2k_92_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 128, 128, 256), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(0, 128, 128, 256), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[0:32, 32:64], ssdata)
def test_NR_DEC_p0_04_j2k_93_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(10, 50, 200, 120), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(10, 50, 200, 120), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[3:50, 13:30], ssdata)
def test_NR_DEC_p0_04_j2k_94_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(150, 10, 210, 190), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(150, 10, 210, 190), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[38:53, 3:48], ssdata)
def test_NR_DEC_p0_04_j2k_95_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(80, 100, 150, 200), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(80, 100, 150, 200), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[20:38, 25:50], ssdata)
def test_NR_DEC_p0_04_j2k_96_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(20, 150, 50, 200), reduce=2)
fulldata = jp2k.read(reduce=2)
ssdata = jp2k.read(area=(20, 150, 50, 200), rlevel=2)
fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[5:13, 38:50], ssdata)
@ -7360,7 +7360,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx')
pgxdata = read_pgx(pgxfile)
@ -7373,7 +7373,7 @@ class TestSuite15(unittest.TestCase):
# really know what to do with it. Just ignore.
warnings.simplefilter("ignore")
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx')
pgxdata = read_pgx(pgxfile)
@ -7382,7 +7382,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2)
jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_09.pgx')
@ -7394,7 +7394,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_11.pgx')
@ -7406,7 +7406,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_12.pgx')
@ -7417,7 +7417,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_16.pgx')
@ -7428,7 +7428,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_01.pgx')
@ -7439,7 +7439,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7453,7 +7453,7 @@ class TestSuite15(unittest.TestCase):
# really know what to do with it. Just ignore.
warnings.simplefilter("ignore")
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7463,7 +7463,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7473,7 +7473,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7493,7 +7493,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1)
jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7510,7 +7510,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7522,7 +7522,7 @@ class TestSuite15(unittest.TestCase):
with warnings.catch_warnings():
# This file has an invalid ICC profile
warnings.simplefilter("ignore")
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7539,7 +7539,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7549,7 +7549,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7559,7 +7559,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7580,7 +7580,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7597,7 +7597,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7606,7 +7606,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7615,7 +7615,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx')
pgxdata = read_pgx(pgxfile)
@ -7624,7 +7624,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0)
jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx')
pgxdata = read_pgx(pgxfile)

View file

@ -157,7 +157,7 @@ class TestSuiteNegative(unittest.TestCase):
def test_precinct_size_not_multiple_of_two(self):
# Seems like precinct sizes should be powers of two.
ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2)
data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce:
@ -166,7 +166,7 @@ class TestSuiteNegative(unittest.TestCase):
def test_codeblock_size_not_multiple_of_two(self):
# Seems like code block sizes should be powers of two.
ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2)
data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce:
@ -176,7 +176,7 @@ class TestSuiteNegative(unittest.TestCase):
# Seems like code block sizes should never exceed half that of
# precinct size.
ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2)
data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce:

View file

@ -34,7 +34,7 @@ class TestPrintingNeedsLib(unittest.TestCase):
with tempfile.NamedTemporaryFile(suffix='.jp2', delete=False) as tfile:
cls._plain_nemo_file = tfile.name
ijfile = Jp2k(jp2file)
data = ijfile.read(reduce=1)
data = ijfile.read(rlevel=1)
ojfile = Jp2k(cls._plain_nemo_file, 'wb')
ojfile.write(data)
@ -122,7 +122,7 @@ class TestPrintingNeedsLib(unittest.TestCase):
def test_asoc_label_box(self):
# Construct a fake file with an asoc and a label box, as
# OpenJPEG doesn't have such a file.
data = glymur.Jp2k(self.jp2file).read(reduce=1)
data = glymur.Jp2k(self.jp2file).read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
j = glymur.Jp2k(tfile.name, 'wb')
j.write(data)