Ejemplo n.º 1
0
    def test_HDRGenerator(self):
        self.HDRgen = CompositeImage.HDRGenerator()

        hdr_conf = CompositeImage.HDRConfig('/tmp', prefix='HDRTest')

        m = mock.MagicMock()
        with mock.patch('CompositeImage.subprocess.call', m):
            self.HDRgen(self.CI, hdr_conf)

#       self.assertTrue(self.CI.getFilelist.called, 'HDRgen did not call CI getFilelist')
        tif_list = [
            os.path.splitext(os.path.basename(img))[0] + '.TIF'
            for img in self.short_fl
        ]
        cmds = []
        cmds.append(['align_image_stack', '-atmp', '-p/tmp/HDRTest.pto'] +
                    ['/tmp/TIF/%s' % t for t in tif_list])
        cmds.append(['enfuse', '-o/tmp/HDRTest.TIF'] +
                    ['tmp%04d.tif' % i for i, t in enumerate(tif_list)])

        for i, method_call in enumerate(m.method_calls):
            expected = mock.call.call(cmds[i]).call_list()
            l = len(expected)
            self.assertEqual(l, 1, "len(expected)=%d, should be 1" % l)
            self.assertEqual(
                method_call, expected[0],
                "call args list:\n%s\nexpected:\n%s" % (method_call, expected))
Ejemplo n.º 2
0
 def test_emptychecker(self):
     cic = CompositeImage.CompositeImageCollector([])
     si1 = CompositeImage.SingleImage(file_list[0])
     cic.check(si1)  # No other way to add image to a checker
     si2 = CompositeImage.SingleImage(file_list[1])
     cic.check(si2)
     n_imgs = len(cic.getCompImage())
     self.assertEqual(2, n_imgs, 'Empty checker case')
Ejemplo n.º 3
0
 def __call__(self):
     config = seq_config_dict[self.path]
     try: 
         collect_seq_strategy = CompositeImage.CollectSeqStrategy()
         hdrs, single_imgs = collect_seq_strategy.parseDir(self.path,
                                                           config)
         # TODO: Még a HDR-eket nem vizsgálja
         target_dir = config.GetTargetDir()
         pano_config = CompositeImage.PanoWeakConfig(target_dir, 25)
         panos, single_imgs = collect_seq_strategy.parseIMGList(single_imgs,
                                                                pano_config)
         return (hdrs, panos, single_imgs)
     except IOError:  # handling the case when there are no raw files
         print "No RAW input to parse in %s" % self.path    
Ejemplo n.º 4
0
def GenerateHDRs(config, directory):

    symlink = CompositeImage.SymlinkGenerator()

    ProcessFolder(symlink, config, directory)

    image_ext = config.GetImageExt()
    if image_ext == '.tiff':
        generator = CompositeImage.RawToTifGenerator
    if image_ext == '.thumb.jpg':
        generator = CompositeImage.RawToThumbnailGenerator

    ProcessFolder(generator, config, directory)

    hdr_gen = CompositeImage.HDRGenerator()
    ProcessFolder(hdr_gen, config, directory)
Ejemplo n.º 5
0
    def test_timestamp(self):
        value = [(2012, 10, 05, 12, 23, 34, 0.01)]

        si = mock.MagicMock()
        si.__getitem__.side_effect = SingleImageSideEffect(value)
        (kezdo, veg) = CompositeImage.timestampFromMetadata(si)
        exp_res = datetime.timedelta(seconds=0.01)
        self.assertEqual(veg - kezdo, exp_res, "Timedelta: %s instead of %s" % (veg - kezdo, exp_res))
Ejemplo n.º 6
0
    def test_iter(self):
        sis = {}
        for i in range(0, 5):
            sis[file_list[i]] = CompositeImage.SingleImage(file_list[i])

        for img in self.ci:
            self.assertEquals(
                self.ci[img], sis[img],
                'CompositeImage iterator: %s vs %s' % (img, sis[img].name()))
Ejemplo n.º 7
0
    def test_timestamp(self):
        value = [(2012, 10, 05, 12, 23, 34, 0.01)]

        si = mock.MagicMock()
        si.__getitem__.side_effect = SingleImageSideEffect(value)
        (kezdo, veg) = CompositeImage.timestampFromMetadata(si)
        exp_res = datetime.timedelta(seconds=0.01)
        self.assertEqual(
            veg - kezdo, exp_res,
            'Timedelta: %s instead of %s' % (veg - kezdo, exp_res))
Ejemplo n.º 8
0
    def test_addAndlen(self):
        self.ci[1] = 1
        l = len(self.ci)
        self.assertEqual(1, l, 'Expected len=%d, actual len=%d' % (1, l))

        self.ci[1] = 2
        l = len(self.ci)
        self.assertEqual(1, l, 'Expected len=%d, actual len=%d' % (1, l))

        self.ci[2] = 3
        l = len(self.ci)
        self.assertEqual(2, l, 'Expected len=%d, actual len=%d' % (1, l))

        self.ci.add(CompositeImage.SingleImage(file_list[0]))
        l = len(self.ci)
        self.assertEqual(3, l, 'Expected len=%d, actual len=%d' % (1, l))

        self.ci.add(CompositeImage.SingleImage(file_list[0]))
        l = len(self.ci)
        self.assertEqual(3, l, 'adding the same image again. l=%d' % l)
Ejemplo n.º 9
0
    def test_defaultchecker(self):
        cic = CompositeImage.CompositeImageCollector([self.false_chkr])
        si0 = CompositeImage.SingleImage(file_list[0])
        check_result = cic.check(si0)
        self.assertTrue(check_result,
                        'default checker does not return True for 1st image')
        self.assertTrue(1 == len(cic.getCompImage()),
                        'default check function error at 1st image')

        si1 = CompositeImage.SingleImage(file_list[3])
        check_result = cic.check(si1)
        self.assertFalse(
            check_result,
            'default checker does not return False for 2nd, nonmatching image')
        self.assertTrue(
            len(cic.getCompImage()) == 1,
            'default checker added the 2nd image')

        cic.setCheckers([self.true_chkr])
        check_result = cic.check(si0)
        l = len(cic.getCompImage())
        self.assertTrue(check_result,
                        'Adding the same image again, return value')
        self.assertEqual(1, l, 'Adding the same image again, amount of images')
Ejemplo n.º 10
0
    def __init__(self, parent, id, title, rootdir):
        super(TreeCtrlFrame, self).__init__(parent, id, title, wx.DefaultPosition, wx.Size(450, 350))
        panel = wx.Panel(self, -1)
        self.tree = TreeCtrlWithImages(panel, 1, wx.DefaultPosition, (-1,-1), wx.TR_HAS_BUTTONS)
        
        self.config_key = rootdir
        
        seq_config_dict[rootdir] = CompositeImage.HDRConfig('/tmp')
        RootItemExpander(self.tree, rootdir)
        
        self.updatebutton = wx.Button(self, id=wx.ID_REFRESH)
        self.updatebutton.Bind(wx.EVT_BUTTON, self.onUpdate)
        savebutton = wx.Button(self, id=wx.ID_SAVE)
        savebutton.Bind(wx.EVT_BUTTON, self.onSave)
        loadbutton = wx.Button(self, id=wx.ID_OPEN)
        loadbutton.Bind(wx.EVT_BUTTON, self.onLoad)
        self.stopbutton = wx.Button(self, id=wx.ID_STOP)
        self.stopbutton.Bind(wx.EVT_BUTTON, self.onStopCommand)
        self.stopbutton.Disable()
        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        button_sizer.Add(self.updatebutton, 0, wx.EXPAND)
        button_sizer.Add(savebutton, 0, wx.EXPAND)
        button_sizer.Add(loadbutton, 0, wx.EXPAND)
        button_sizer.Add(self.stopbutton, 0, wx.EXPAND)
        
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.tree, 1, wx.EXPAND)
        
        panel.SetSizer(sizer)
        
        vsizer = wx.BoxSizer(wx.VERTICAL)
        vsizer.Add(panel, 1, wx.EXPAND)
        vsizer.Add(button_sizer, 0, wx.EXPAND)
        self.SetSizer(vsizer)

        self.Layout()
        
        self.tree.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.onItemExpand, id=1)
        self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.onRightClick, self.tree)
        self.Bind(wx.EVT_TREE_SEL_CHANGED, self.onClickItem, self.tree)
        
        self.Bind(EVT_COMMAND_UPDATE, self.onCommandUpdate)
                    
        self.Bind(wx.EVT_IDLE, self.OnIdle)                            
Ejemplo n.º 11
0
 def test_SetGet(self):
     hdrc = CompositeImage.HDRConfig('/tmp')
     print dir(hdrc)
Ejemplo n.º 12
0
def ProcessFolder(cmd, seq_parser_config, directory):
    collect_seq_strategy = CompositeImage.CollectSeqStrategy()
    img_seqs, single_imgs = collect_seq_strategy.parseDir(
        directory, seq_parser_config)
    ProcessCImgList(cmd, seq_parser_config, img_seqs)
Ejemplo n.º 13
0
 def executeGen(self, gen):
     if gen == None:
         gen = CompositeImage.PanoGenerator()
         
     task_id = self._ExecCmd(gen)
     return task_id
Ejemplo n.º 14
0
 def onSymlinks(self, evt):    
     self.ExecCmd(CompositeImage.SymlinkGenerator())
Ejemplo n.º 15
0
 def onCreateSymlink(self,evt):
     self.expander.executeGen(CompositeImage.SymlinkGenerator())
Ejemplo n.º 16
0
    def setUp(self):

        self.SI = CompositeImage.SingleImage(file_list[0])
        self.CUTname = self.__class__.__name__
Ejemplo n.º 17
0
    def test_equality(self):
        si2 = CompositeImage.SingleImage(file_list[1])
        self.assertFalse(self.SI == si2, "SingleImage for different files")

        si3 = CompositeImage.SingleImage(file_list[0])
        self.assertTrue(self.SI == si3, "SingleImage for the same file")
Ejemplo n.º 18
0
 def test_setNextCollector(self):
     self.cic = CompositeImage.CompositeImageCollector(self.true_chkr)
     self.cic.setNextCollector(1)
     self.assertTrue(1 == self.cic._next_collector,
                     'Failed to set successor')
Ejemplo n.º 19
0
def PistisetUpModule():
    for fn in file_list:
        si = CompositeImage.SingleImage(fn)
        for t in tag_list:
            si_mock_data[fn][t] = si[t]
Ejemplo n.º 20
0
import CompositeImage as CI
import glob

HDRworkdir = '/home/smb/HDR'

HDRCollector = CI.CollectHDRStrategy()

fl = glob.glob(
    '/home/smb/git/fotoworkflow/Python toolok/src/test_images/*.CR2')
hdrs, sic = HDRCollector.parseFileList(fl)

symlink_gen = CI.SymlinkGenerator()
symlink_gen.setTargetDir(HDRworkdir)
for hdr in hdrs:
    symlink_gen(hdr.getCompImage())

hdr_gen = CI.HDRGenerator()
hdr_gen.setParams(HDRworkdir, '.tiff', 'test')

#for i, hdr in enumerate(hdrs):
#    hdr_gen._prefix = 'test_%d' % i
#    hdr_gen(hdr.getCompImage())

hdr_gen(hdrs[0].getCompImage())
Ejemplo n.º 21
0
 def setUp(self):
     self.ci = CompositeImage.CompositeImage()
     CompositeImage.SingleImage = SingleImage_mock
Ejemplo n.º 22
0
 def _runSymlinkGen(self, tdir):
     symlinkgen = CompositeImage.SymlinkGenerator()
     hdr_config = CompositeImage.HDRConfig(tdir)
     symlinkgen(self.CI, hdr_config)
Ejemplo n.º 23
0
 def setUp(self):
     self.short_fl = file_list[0:5]
     self.CI = CompositeImage.CompositeImage()
     self.CI.getFilelist = mock.MagicMock(name="getFileList")
     self.CI.getFilelist.return_value = self.short_fl
Ejemplo n.º 24
0
 def setUp(self):
     self.collect_HDR_strategy = CompositeImage.CollectHDRStrategy()
Ejemplo n.º 25
0
    ProcessFolder(generator, config, directory)

    hdr_gen = CompositeImage.HDRGenerator()
    ProcessFolder(hdr_gen, config, directory)


config_parser = setup_config_parser()
(config, pos_args) = config_parser.parse_args()

outdir, indir = process_dirs(config_parser, pos_args)

seq_parser_config, seq_generator = process_seq_type(config_parser, config,
                                                    outdir)

if config.generate:
    cmd = seq_generator
    if config.use_tiff:
        seq_parser_config.SetImageExt('.tiff')
    else:
        seq_parser_config.SetImageExt('.thumb.jpg')

else:
    cmd = CompositeImage.SymlinkGenerator()

if config.recursive:
    for (p, d, f) in os.walk(indir):
        print "Processing %s" % p
        ProcessFolder(cmd, seq_parser_config, p)
else:
    ProcessFolder(cmd, seq_parser_config, indir)
Ejemplo n.º 26
0
 def setUp(self):
     self.checker_head = CompositeImage.CompositeImageCollector()