Python OpenEXR.OutputFile() Examples
The following are 3
code examples of OpenEXR.OutputFile().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
OpenEXR
, or try the search function
.
Example #1
Source File: img_io.py From hdrcnn with BSD 3-Clause "New" or "Revised" License | 7 votes |
def writeEXR(img, file): try: img = np.squeeze(img) sz = img.shape header = OpenEXR.Header(sz[1], sz[0]) half_chan = Imath.Channel(Imath.PixelType(Imath.PixelType.HALF)) header['channels'] = dict([(c, half_chan) for c in "RGB"]) out = OpenEXR.OutputFile(file, header) R = (img[:,:,0]).astype(np.float16).tostring() G = (img[:,:,1]).astype(np.float16).tostring() B = (img[:,:,2]).astype(np.float16).tostring() out.writePixels({'R' : R, 'G' : G, 'B' : B}) out.close() except Exception as e: raise IOException("Failed writing EXR: %s"%e) # Read training data (HDR ground truth and LDR JPEG images)
Example #2
Source File: exr_test.py From graphics with Apache License 2.0 | 5 votes |
def _WriteMixedDatatypesExr(filename): header = OpenEXR.Header(64, 64) header['channels'] = { 'uint': Imath.Channel(Imath.PixelType(Imath.PixelType.UINT)), 'half': Imath.Channel(Imath.PixelType(Imath.PixelType.HALF)) } channel_data = { 'uint': np.zeros([64, 64], dtype=np.uint32).tobytes(), 'half': np.zeros([64, 64], dtype=np.float16).tobytes() } output = OpenEXR.OutputFile(filename, header) output.writePixels(channel_data) output.close()
Example #3
Source File: exr.py From graphics with Apache License 2.0 | 5 votes |
def write_exr(filename, values, channel_names): """Writes the values in a multi-channel ndarray into an EXR file. Args: filename: The filename of the output file values: A numpy ndarray with shape [height, width, channels] channel_names: A list of strings with length = channels Raises: TypeError: If the numpy array has an unsupported type. ValueError: If the length of the array and the length of the channel names list do not match. """ if values.shape[-1] != len(channel_names): raise ValueError( 'Number of channels in values does not match channel names (%d, %d)' % (values.shape[-1], len(channel_names))) header = OpenEXR.Header(values.shape[1], values.shape[0]) try: exr_channel_type = Imath.PixelType(_np_to_exr[values.dtype.type]) except KeyError: raise TypeError('Unsupported numpy type: %s' % str(values.dtype)) header['channels'] = { n: Imath.Channel(exr_channel_type) for n in channel_names } channel_data = [values[..., i] for i in range(values.shape[-1])] exr = OpenEXR.OutputFile(filename, header) exr.writePixels( dict((n, d.tobytes()) for n, d in zip(channel_names, channel_data))) exr.close()