optimize, which probably doesnt improve

This commit is contained in:
q
2025-05-19 15:01:22 +03:00
parent 86c516742e
commit df02a9b1bf
2 changed files with 11 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ from imagelist2.db import DB, sqlite_sqrt, sqlite_square
from imagelist2.image import ImageMeasure, is_image_extension from imagelist2.image import ImageMeasure, is_image_extension
from tqdm import tqdm from tqdm import tqdm
__version__ = "0.0.4" __version__ = "0.0.5"
SQLFILE = "image-list.sqlite" SQLFILE = "image-list.sqlite"
# IMGMATCH = re.compile("|".join([".*\." + x + "$" |.*\.jpeg$|.*\.png$|.*\.gif$|.*\.tif$", re.I) # IMGMATCH = re.compile("|".join([".*\." + x + "$" |.*\.jpeg$|.*\.png$|.*\.gif$|.*\.tif$", re.I)
BADDIRS = ["_tn", "_med", ".tn", ".med"] BADDIRS = ["_tn", "_med", ".tn", ".med"]
@@ -505,14 +505,20 @@ class ImageList:
t2.height AS height2, t2.height AS height2,
t2.sharpness AS sharpness2, t2.sharpness AS sharpness2,
PDISTANCE(t1.p_hash,t2.p_hash) AS p_distance, PDISTANCE(t1.p_hash,t2.p_hash) AS p_distance,
COLORDIFF(t1.R,t1.G,t1.B,t2.R,t2.G,t2.B) AS c_diff, t1.R AS t1r, t1.G AS t1g, t1.B AS t1b,
SHAPEDIFF(t1.width,t1.height,t2.width,t2.height) AS s_diff t2.R AS t2r, t2.G AS t2g, t2.B AS t2b
FROM t1 INNER JOIN t2 FROM t1 INNER JOIN t2
ON t1.file < t2.file ON t1.file < t2.file
WHERE p_distance <= ? WHERE p_distance <= ?
ORDER BY t1.file, p_distance, t2.file ORDER BY t1.file, p_distance, t2.file
) )
SELECT * FROM disttab SELECT
file1,width1,height1,sharpness1,
file2,width2,height2,sharpness2,
p_distance,
ROUND(SQRT((t1r-t2r)*(t1r-t2r)+(t1g-t2g)*(t1g-t2g)+(t1b-t2b)*(t1b-t2b)),1) AS c_diff,
ROUND(ABS((CAST(width1 AS FLOAT) / CAST(height1 AS FLOAT)) - (CAST(width2 AS FLOAT) / CAST(height2 AS FLOAT))), 4) AS s_diff
FROM disttab
""", """,
(thr,), (thr,),
) )

View File

@@ -58,6 +58,7 @@ class DB:
def connect(self): def connect(self):
conn = sqlite3.connect(self.sqlfile) conn = sqlite3.connect(self.sqlfile)
conn.text_factory = str conn.text_factory = str
conn.create_function("SQRT", 1, sqlite_sqrt)
conn.create_function("RELATIVE", 1, self.file2relative) conn.create_function("RELATIVE", 1, self.file2relative)
conn.create_function("PDISTANCE", 2, calculate_phash_distance) conn.create_function("PDISTANCE", 2, calculate_phash_distance)
conn.create_function("COLORDIFF", 6, calculate_color_difference) conn.create_function("COLORDIFF", 6, calculate_color_difference)