From 1e8ed131bfcc91d93e346e78ee5606bfd4819307 Mon Sep 17 00:00:00 2001 From: ville rantanen Date: Mon, 6 Jan 2014 22:26:21 +0200 Subject: [PATCH] simple focus. maybe should std size, and contrast --- image_list.py | 71 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 10 deletions(-) diff --git a/image_list.py b/image_list.py index fe82e49..692fd9e 100755 --- a/image_list.py +++ b/image_list.py @@ -58,7 +58,7 @@ def createdb(sqlfile): conn.text_factory=str db.execute('CREATE TABLE list (id INTEGER PRIMARY KEY AUTOINCREMENT,\ file TEXT,date INTEGER,portrait NUMERIC, hash TEXT,\ - width INTEGER,height INTEGER,fingerprint TEXT,\ + width INTEGER,height INTEGER,fingerprint TEXT,sharpness NUMERIC,\ R REAL,G REAL, B REAL, BR REAL, BG REAL, BB REAL)') conn.commit() return @@ -216,12 +216,18 @@ def append_colors(sqlfile): dbh=conn.cursor() db.execute("SELECT file,R FROM list WHERE R IS NULL ORDER BY file") i=0 + dirname_old="" for row in db: colors=get_colors(row[0]) dbh.execute("UPDATE list SET R=?, G=?, B=?, BR=?, BG=?, BB=? \ WHERE file=?",(colors[0][0],colors[0][1],colors[0][2], colors[1][0],colors[1][1],colors[1][2],row[0])) - print "colors: %(f)s (%(r)s %(g)s %(b)s)" % {'f':row[0], 'r':colors[0][0], + filename=" "+os.path.basename(row[0]) + dirname=os.path.dirname(row[0]) + if dirname!=dirname_old: + dirname_old=dirname + filename=row[0] + print "colors: %(f)s (%(r)s %(g)s %(b)s)" % {'f':filename, 'r':colors[0][0], 'g':colors[0][1], 'b':colors[0][2]} i+=1 if (i%50==0): @@ -270,12 +276,18 @@ def append_fingerprints(sqlfile): dbh=conn.cursor() db.execute("SELECT file FROM list WHERE fingerprint IS NULL ORDER BY file") i=0 + dirname_old="" for row in db: fp=get_fingerprint(row[0]) dbh.execute("UPDATE list SET fingerprint=? \ WHERE file=?",(fp,row[0])) - print " %(f)s" % {'f':row[0]} + filename=" "+os.path.basename(row[0]) + dirname=os.path.dirname(row[0]) + if dirname!=dirname_old: + dirname_old=dirname + filename=row[0] i+=1 + print "%(nr)i %(f)s" % {'f':filename, 'nr':i} if (i%50==0): conn.commit(); conn.commit() @@ -333,14 +345,16 @@ def find_fingerprint_nearest(sqlfile,cmp): conn.text_factory=str db1=conn.cursor() if is_listed(db1, cmp): - db1.execute("SELECT file,fingerprint,width,height FROM list WHERE file=?",(cmp,)) + db1.execute("SELECT file,fingerprint,sharpness,width,height FROM list WHERE file=?",(cmp,)) for hit1 in db1: fp=int(hit1[1]) + sp=hit1[2] else: fp=int(get_fingerprint(cmp)) - - db1.execute("SELECT file,fingerprint,width,height FROM list ORDER BY file") - this=['',sys.maxint] + sp=get_sharpness(cmp) + print('"%s":0:%f' % (cmp, sp)) + db1.execute("SELECT file,fingerprint,sharpness,width,height FROM list ORDER BY file") + this=['',sys.maxint,0] for i,hit1 in enumerate(db1): if hit1[0] == cmp: continue @@ -348,7 +362,42 @@ def find_fingerprint_nearest(sqlfile,cmp): if similarity