Hi marksgraham, I encountered an error when trying to open a .oct image, can you give me some clue? thank you!
Below is the error message:
from oct_converter.readers import BOCT
fn = r'../raw-test/oct-raw/{8968AB72-5A10-46CD-99D4-50CF5F5F8974}.oct'
oct = BOCT(fn)
oct.read_oct_volume()
UnicodeDecodeError Traceback (most recent call last)
Cell In [21], line 1
----> 1 oct.read_oct_volume()
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/oct_converter/readers/boct.py:170, in BOCT.read_oct_volume(self, diskbuffered)
167 self.patient_id = self.filepath.stem
169 # Lazily parse the file without loading frame pixels
--> 170 oct = self.file_structure.parse_file(self.filepath)
171 header = oct.header
172 self.frames = FrameGenerator(oct.data)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:309, in Construct.parse_file(self, filename, **contextkw)
305 r"""
306 Parse a closed binary file. See parse().
307 """
308 with open(filename, 'rb') as f:
--> 309 return self.parse_stream(f, **contextkw)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:300, in Construct.parse_stream(self, stream, **contextkw)
298 context._params = context
299 try:
--> 300 return self._parsereport(stream, context, "(parsing)")
301 except CancelParsing:
302 pass
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2120, in Struct._parse(self, stream, context, path)
2118 for sc in self.subcons:
2119 try:
-> 2120 subobj = sc._parsereport(stream, context, path)
2121 if sc.name:
2122 obj[sc.name] = subobj
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2653, in Renamed._parse(self, stream, context, path)
2651 def _parse(self, stream, context, path):
2652 path += " -> %s" % (self.name,)
-> 2653 return self.subcon._parsereport(stream, context, path)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2120, in Struct._parse(self, stream, context, path)
2118 for sc in self.subcons:
2119 try:
-> 2120 subobj = sc._parsereport(stream, context, path)
2121 if sc.name:
2122 obj[sc.name] = subobj
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2653, in Renamed._parse(self, stream, context, path)
2651 def _parse(self, stream, context, path):
2652 path += " -> %s" % (self.name,)
-> 2653 return self.subcon._parsereport(stream, context, path)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2120, in Struct._parse(self, stream, context, path)
2118 for sc in self.subcons:
2119 try:
-> 2120 subobj = sc._parsereport(stream, context, path)
2121 if sc.name:
2122 obj[sc.name] = subobj
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:2653, in Renamed._parse(self, stream, context, path)
2651 def _parse(self, stream, context, path):
2652 path += " -> %s" % (self.name,)
-> 2653 return self.subcon._parsereport(stream, context, path)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:312, in Construct._parsereport(self, stream, context, path)
311 def _parsereport(self, stream, context, path):
--> 312 obj = self._parse(stream, context, path)
313 if self.parsed is not None:
314 self.parsed(obj, context)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:704, in Adapter._parse(self, stream, context, path)
702 def _parse(self, stream, context, path):
703 obj = self.subcon._parsereport(stream, context, path)
--> 704 return self._decode(obj, context, path)
File ~/miniconda3/envs/unet/lib/python3.9/site-packages/construct/core.py:1610, in StringEncoded._decode(self, obj, context, path)
1609 def _decode(self, obj, context, path):
-> 1610 return obj.decode(self.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 66: invalid continuation byte