def test_convert_dng_files_to_intermediate_files(self): """ Tests :func:`colour_hdri.process.conversion.\ convert_dng_files_to_intermediate_files` definition. """ reference_dng_files = sorted( filter_files(PROCESS_DIRECTORY, ('dng',))) tests_dng_files = [os.path.join(self.__temporary_directory, os.path.basename(reference_dng_file)) for reference_dng_file in reference_dng_files] for reference_dng_file, tests_dng_file in zip(reference_dng_files, tests_dng_files): shutil.copyfile(reference_dng_file, tests_dng_file) reference_tiff_files = sorted( filter_files(PROCESS_DIRECTORY, ('tiff',))) test_tiff_files = sorted(convert_dng_files_to_intermediate_files( tests_dng_files, self.__temporary_directory)) for test_tiff_file, reference_tiff_file in zip( test_tiff_files, reference_tiff_files): np.testing.assert_almost_equal( read_image(str(test_tiff_file)), read_image(str(reference_tiff_file)), decimal=7)
def test_convert_dng_files_to_intermediate_files(self): """ Tests :func:`colour_hdri.process.adobe_dng.\ convert_dng_files_to_intermediate_files` definition. """ reference_dng_files = sorted(filter_files(PROCESS_DIRECTORY, ('dng', ))) tests_dng_files = [ os.path.join(self._temporary_directory, os.path.basename(reference_dng_file)) for reference_dng_file in reference_dng_files ] for reference_dng_file, tests_dng_file in zip(reference_dng_files, tests_dng_files): shutil.copyfile(reference_dng_file, tests_dng_file) reference_zip_files = sorted(filter_files(PROCESS_DIRECTORY, ('zip', ))) for reference_zip_file in reference_zip_files: with zipfile.ZipFile(reference_zip_file) as zip_file: tiff_file_name = os.path.basename(reference_zip_file).replace( '.zip', '') with open( os.path.join(self._temporary_directory, tiff_file_name), 'wb') as reference_tiff_file: reference_tiff_file.write(zip_file.read(tiff_file_name)) reference_tiff_files = sorted( filter_files(self._temporary_directory, ('tiff', ))) # for reference_tiff_file in reference_tiff_files: # os.chdir(os.path.dirname(reference_tiff_file)) # with zipfile.ZipFile( # '{0}.zip'.format(reference_tiff_file), # mode='w') as zip_file: # zip_file.write( # os.path.basename(reference_tiff_file), # compress_type=zipfile.ZIP_DEFLATED) # os.remove(reference_tiff_file) test_tiff_files = sorted( convert_dng_files_to_intermediate_files(tests_dng_files, self._temporary_directory)) for test_tiff_file, reference_tiff_file in zip(test_tiff_files, reference_tiff_files): np.testing.assert_almost_equal(read_image(str(test_tiff_file)), read_image( str(reference_tiff_file)), decimal=7)
def test_read_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.read_exif_tags` definition. """ test_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg', ))[0] exif_data = vivified_to_dict(read_exif_tags(test_jpg_image)) self.assertIsInstance(exif_data, type(dict())) self.assertListEqual(sorted(exif_data.keys()), [ 'Composite', 'EXIF', 'ExifTool', 'File', 'ICC_Profile', 'JFIF', 'Photoshop', 'XMP' ]) self.assertListEqual( sorted(exif_data['EXIF'].values()), [[ExifTag('EXIF', 'Camera Model Name', 'EOS 5D Mark II', '272')], [ExifTag('EXIF', 'Create Date', '2015:09:19 03:39:20', '36868')], [ExifTag('EXIF', 'Date/Time Original', '2015:09:19 03:39:20', '36867')], [ExifTag('EXIF', 'Exif Image Height', '426', '40963')], [ExifTag('EXIF', 'Exif Image Width', '640', '40962')], [ExifTag('EXIF', 'Exposure Time', '0.125', '33434')], [ExifTag('EXIF', 'F Number', '8', '33437')], [ExifTag('EXIF', 'Focal Length', '16', '37386')], [ExifTag('EXIF', 'ISO', '100', '34855')], [ExifTag('EXIF', 'Make', 'Canon', '271')], [ExifTag('EXIF', 'Modify Date', '2015:09:19 03:39:20', '306')], [ExifTag('EXIF', 'Orientation', '1', '274')], [ExifTag('EXIF', 'Photometric Interpretation', '2', '262')], [ExifTag('EXIF', 'Resolution Unit', '2', '296')], [ExifTag('EXIF', 'Software', 'Photos 1.0.1', '305')], [ExifTag('EXIF', 'X Resolution', '72', '282')], [ExifTag('EXIF', 'Y Resolution', '72', '283')]]) # yapf: disable
def setUp(self): """ Initialises common tests attributes. """ self._test_jpg_image = filter_files( FROBISHER_001_DIRECTORY, ('jpg',))[0]
def test_read_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.read_exif_tags` definition. """ test_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg',))[0] exif_data = vivified_to_dict(read_exif_tags(test_jpg_image)) self.assertIsInstance(exif_data, type(dict())) self.assertListEqual( sorted(exif_data.keys()), ['Composite', 'EXIF', 'ExifTool', 'File', 'ICC_Profile', 'JFIF', 'Photoshop', 'XMP']) self.assertListEqual( sorted(exif_data['EXIF'].values()), [('0.125', '33434'), ('1', '274'), ('100', '34855'), ('16', '37386'), ('2', '262'), ('2', '296'), ('2015:09:19 03:39:20', '306'), ('2015:09:19 03:39:20', '36867'), ('2015:09:19 03:39:20', '36868'), ('426', '40963'), ('640', '40962'), ('72', '282'), ('72', '283'), ('8', '33437'), ('Canon', '271'), ('EOS 5D Mark II', '272'), ('Photos 1.0.1', '305')])
def setUp(self): """ Initialises common tests attributes. """ self._test_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg', ))[0]
def setUp(self): """ Initialises common tests attributes. """ self.__test_jpg_images = filter_files(FROBISHER_001_DIRECTORY, ("jpg",)) self.__image_stack = ImageStack().from_files(self.__test_jpg_images)
def setUp(self): """ Initialises common tests attributes. """ self._test_jpg_images = filter_files(FROBISHER_001_DIRECTORY, ('jpg', )) self._image_stack = ImageStack().from_files(self._test_jpg_images)
def test_read_exif_tag(self): """ Tests :func:`colour_hdri.utilities.exif.read_exif_tag` definition. """ test_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg', ))[0] self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0') self.assertEqual(read_exif_tag(test_jpg_image, 'ExposureTime'), '1/8') self.assertEqual(read_exif_tag(test_jpg_image, 'ISO'), '100')
def test_filter_files(self): """ Tests :func:`colour_hdri.utilities.common.filter_files` definition. """ raw_files = filter_files(FROBISHER_001_DIRECTORY, ('CR2', 'jpg')) self.assertListEqual(sorted(map(os.path.basename, raw_files)), ['IMG_2600.CR2', 'IMG_2600.jpg', 'IMG_2601.CR2', 'IMG_2601.jpg', 'IMG_2602.CR2', 'IMG_2602.jpg'])
def test_read_exif_tag(self): """ Tests :func:`colour_hdri.utilities.exif.read_exif_tag` definition. """ test_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg',))[0] self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0') self.assertEqual(read_exif_tag(test_jpg_image, 'ExposureTime'), '1/8') self.assertEqual(read_exif_tag(test_jpg_image, 'ISO'), '100')
def test_filter_files(self): """ Tests :func:`colour_hdri.utilities.common.filter_files` definition. """ raw_files = filter_files(FROBISHER_001_DIRECTORY, ('CR2', 'jpg')) self.assertListEqual( sorted(map(os.path.basename, raw_files)), ['IMG_2600.CR2', 'IMG_2600.jpg', 'IMG_2601.CR2', 'IMG_2601.jpg', 'IMG_2602.CR2', 'IMG_2602.jpg']) # yapf: disable
def test_delete_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.delete_exif_tags` definition. """ reference_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg', ))[0] test_jpg_image = os.path.join(self._temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0') delete_exif_tags(test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '')
def test_delete_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.delete_exif_tags` definition. """ reference_jpg_image = filter_files( FROBISHER_001_DIRECTORY, ('jpg',))[0] test_jpg_image = os.path.join( self.__temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0') delete_exif_tags(test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '')
def test_write_exif_tag(self): """ Tests :func:`colour_hdri.utilities.exif.write_exif_tag` definition. """ reference_jpg_image = filter_files(FROBISHER_001_DIRECTORY, ('jpg', ))[0] test_jpg_image = os.path.join(self._temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) # *Aperture* exif tag is not writeable, changing for *FNumber*. self.assertEqual(read_exif_tag(test_jpg_image, 'FNumber'), '8.0') write_exif_tag(test_jpg_image, 'FNumber', '16.0') self.assertEqual(read_exif_tag(test_jpg_image, 'FNumber'), '16.0')
def test_write_exif_tag(self): """ Tests :func:`colour_hdri.utilities.exif.write_exif_tag` definition. """ reference_jpg_image = filter_files( FROBISHER_001_DIRECTORY, ('jpg',))[0] test_jpg_image = os.path.join( self.__temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) # *Aperture* exif tag is not writeable, changing for *FNumber*. self.assertEqual(read_exif_tag(test_jpg_image, 'FNumber'), '8.0') write_exif_tag(test_jpg_image, 'FNumber', '16.0') self.assertEqual(read_exif_tag(test_jpg_image, 'FNumber'), '16.0')
def test_read_dng_files_exif_tags(self): """ Tests :func:`colour_hdri.process.adobe_dng.\ read_dng_files_exif_tags` definition. """ reference_dng_files = sorted( filter_files(PROCESS_DIRECTORY, ('dng', ))) exif_tags = read_dng_files_exif_tags(reference_dng_files) self.assertEqual(len(exif_tags), 3) self.assertIn('EXIF', exif_tags[0]) self.assertIn('Make', exif_tags[0]['EXIF']) self.assertAlmostEquals( exif_tags[0]['EXIF']['Exposure Time'], 0.12500000, places=7) np.testing.assert_array_equal( exif_tags[0]['EXIF']['Reduction Matrix 1'], np.identity(3))
def test_update_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.update_exif_tags` definition. """ reference_jpg_images = filter_files(FROBISHER_001_DIRECTORY, ('jpg', )) test_jpg_images = [] for reference_jpg_image in reference_jpg_images: test_jpg_image = os.path.join( self._temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) delete_exif_tags(test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '') test_jpg_images.append(test_jpg_image) update_exif_tags(zip(reference_jpg_images, test_jpg_images)) for test_jpg_image in test_jpg_images: self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0')
def test_update_exif_tags(self): """ Tests :func:`colour_hdri.utilities.exif.update_exif_tags` definition. """ reference_jpg_images = filter_files(FROBISHER_001_DIRECTORY, ('jpg',)) test_jpg_images = [] for reference_jpg_image in reference_jpg_images: test_jpg_image = os.path.join( self.__temporary_directory, os.path.basename(reference_jpg_image)) shutil.copyfile(reference_jpg_image, test_jpg_image) delete_exif_tags(test_jpg_image) self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '') test_jpg_images.append(test_jpg_image) update_exif_tags(zip(reference_jpg_images, test_jpg_images)) for test_jpg_image in test_jpg_images: self.assertEqual(read_exif_tag(test_jpg_image, 'Aperture'), '8.0')
def test_convert_raw_files_to_dng_files(self): """ Tests :func:`colour_hdri.process.conversion.\ convert_raw_files_to_dng_files` definition. """ if platform.system() not in ('Windows', 'Microsoft', 'Darwin'): # *Adobe DNG Converter* is not available on Linux, thus we skip # that unit test. return reference_dng_files = sorted(filter_files( PROCESS_DIRECTORY, ('dng',))) test_dng_files = sorted(convert_raw_files_to_dng_files( RAW_IMAGES, self.__temporary_directory)) for test_dng_file, reference_dng_file in zip( test_dng_files, reference_dng_files): np.testing.assert_almost_equal( read_image(str(test_dng_file)), read_image(str(reference_dng_file)), decimal=7)
def test_convert_raw_files_to_dng_files(self): """ Tests :func:`colour_hdri.process.adobe_dng.\ convert_raw_files_to_dng_files` definition. """ if platform.system() not in ('Windows', 'Microsoft', 'Darwin'): # *Adobe DNG Converter* is not available on Linux, thus we skip # that unit test. return reference_dng_files = sorted(filter_files(PROCESS_DIRECTORY, ('dng', ))) test_dng_files = sorted( convert_raw_files_to_dng_files(RAW_IMAGES, self._temporary_directory)) for test_dng_file, reference_dng_file in zip(test_dng_files, reference_dng_files): np.testing.assert_almost_equal(read_image(str(test_dng_file)), read_image(str(reference_dng_file)), decimal=7)
__email__ = '*****@*****.**' __status__ = 'Production' __all__ = ['FROBISHER_001_DIRECTORY', 'PROCESS_DIRECTORY', 'RAW_IMAGES', 'TestConvertRawFilesToDngFiles', 'TestConvertDngFilesToIntermediateFiles'] FROBISHER_001_DIRECTORY = os.path.join( TESTS_RESOURCES_DIRECTORY, 'frobisher_001') PROCESS_DIRECTORY = os.path.join( TESTS_RESOURCES_DIRECTORY, 'colour_hdri', 'process') RAW_IMAGES = filter_files(FROBISHER_001_DIRECTORY, ('CR2',)) class TestConvertRawFilesToDngFiles(unittest.TestCase): """ Defines :func:`colour_hdri.process.conversion.\ convert_raw_files_to_dng_files` definition unit tests methods. """ def setUp(self): """ Initialises common tests attributes. """ self.__temporary_directory = tempfile.mkdtemp()
__email__ = '*****@*****.**' __status__ = 'Production' __all__ = ['FROBISHER_001_DIRECTORY', 'CALIBRATION_DIRECTORY', 'JPG_IMAGES', 'TestGSolve', 'TestCameraResponseFunctionsDebevec1997'] FROBISHER_001_DIRECTORY = os.path.join( TESTS_RESOURCES_DIRECTORY, 'frobisher_001') CALIBRATION_DIRECTORY = os.path.join( TESTS_RESOURCES_DIRECTORY, 'colour_hdri', 'calibration') JPG_IMAGES = filter_files(FROBISHER_001_DIRECTORY, ('jpg',)) class TestGSolve(unittest.TestCase): """ Defines :func:`colour_hdri.calibration.debevec1997.g_solve` definition unit tests methods. """ def test_g_solve(self): """ Tests :func:`colour_hdri.calibration.debevec1997.g_solve` definition. """ image_stack = ImageStack.from_files(JPG_IMAGES) L_l = np.log(average_luminance(image_stack.f_number,
__maintainer__ = 'Colour Developers' __email__ = '*****@*****.**' __status__ = 'Production' __all__ = [ 'FROBISHER_001_DIRECTORY', 'GENERATION_DIRECTORY', 'JPG_IMAGES', 'TestRadianceImage' ] FROBISHER_001_DIRECTORY = os.path.join(TESTS_RESOURCES_DIRECTORY, 'frobisher_001') GENERATION_DIRECTORY = os.path.join(TESTS_RESOURCES_DIRECTORY, 'colour_hdri', 'generation') JPG_IMAGES = filter_files(FROBISHER_001_DIRECTORY, ('jpg', )) class TestRadianceImage(unittest.TestCase): """ Defines :func:`colour_hdri.generation.radiance.\ image_stack_to_radiance_image` definition unit tests methods. """ def test_radiance_image(self): """ Tests :func:`colour_hdri.generation.\ radiance.image_stack_to_radiance_image` definition. """ image_stack = ImageStack.from_files(JPG_IMAGES) image_stack.data = RGB_COLOURSPACES['sRGB'].cctf_decoding(
__maintainer__ = 'Colour Developers' __email__ = '*****@*****.**' __status__ = 'Production' __all__ = [ 'FROBISHER_001_DIRECTORY', 'PROCESS_DIRECTORY', 'RAW_IMAGES', 'TestConvertRawFilesToDngFiles', 'TestConvertDngFilesToIntermediateFiles' ] FROBISHER_001_DIRECTORY = os.path.join(TESTS_RESOURCES_DIRECTORY, 'frobisher_001') PROCESS_DIRECTORY = os.path.join(TESTS_RESOURCES_DIRECTORY, 'colour_hdri', 'process') RAW_IMAGES = filter_files(FROBISHER_001_DIRECTORY, ('CR2', )) class TestConvertRawFilesToDngFiles(unittest.TestCase): """ Defines :func:`colour_hdri.process.adobe_dng.\ convert_raw_files_to_dng_files` definition unit tests methods. """ def setUp(self): """ Initialises common tests attributes. """ self._temporary_directory = tempfile.mkdtemp() def tearDown(self):