changeset 2328:ad005c02001a

Allow to configure rotation invariance
author Klaus Ethgen <Klaus@Ethgen.de>
date Fri, 13 May 2016 16:44:10 +0100
parents 6131063eae87
children ef31eba71c15
files src/options.c src/options.h src/preferences.c src/rcfile.c src/similar.c
diffstat 5 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/options.c	Fri May 13 13:43:41 2016 +0100
+++ b/src/options.c	Fri May 13 16:44:10 2016 +0100
@@ -38,6 +38,7 @@
 
 	options->dnd_icon_size = 48;
 	options->duplicates_similarity_threshold = 99;
+	options->rot_invariant_sim = TRUE;
 
 	options->file_filter.disable = FALSE;
 	options->file_filter.show_dot_directory = FALSE;
--- a/src/options.h	Fri May 13 13:43:41 2016 +0100
+++ b/src/options.h	Fri May 13 16:44:10 2016 +0100
@@ -29,6 +29,7 @@
 	gboolean update_on_time_change;
 
 	guint duplicates_similarity_threshold;
+	gboolean rot_invariant_sim;
 
 	gint open_recent_list_maxsize;
 	gint dnd_icon_size;
--- a/src/preferences.c	Fri May 13 13:43:41 2016 +0100
+++ b/src/preferences.c	Fri May 13 16:44:10 2016 +0100
@@ -290,6 +290,7 @@
 	options->image.exif_proof_rotate_enable = c_options->image.exif_proof_rotate_enable;
 
 	options->duplicates_similarity_threshold = c_options->duplicates_similarity_threshold;
+	options->rot_invariant_sim = c_options->rot_invariant_sim;
 
 	options->tree_descend_subdirs = c_options->tree_descend_subdirs;
 
@@ -1888,11 +1889,12 @@
 	pref_checkbox_new_int(group, _("Mouse wheel scrolls image"),
 			      options->mousewheel_scrolls, &c_options->mousewheel_scrolls);
 
-	group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL);
+	group = pref_group_new(vbox, FALSE, _("Similarities"), GTK_ORIENTATION_VERTICAL);
 
 	pref_spin_new_int(group, _("Custom similarity threshold:"), NULL,
 			  0, 100, 1, options->duplicates_similarity_threshold, (int *)&c_options->duplicates_similarity_threshold);
-
+	pref_checkbox_new_int(group, _("Rotation invariant duplicate check"),
+			      options->rot_invariant_sim, &c_options->rot_invariant_sim);
 
 #ifdef DEBUG
 	group = pref_group_new(vbox, FALSE, _("Debugging"), GTK_ORIENTATION_VERTICAL);
--- a/src/rcfile.c	Fri May 13 13:43:41 2016 +0100
+++ b/src/rcfile.c	Fri May 13 16:44:10 2016 +0100
@@ -281,6 +281,7 @@
 	WRITE_NL(); WRITE_BOOL(*options, progressive_key_scrolling);
 
 	WRITE_NL(); WRITE_UINT(*options, duplicates_similarity_threshold);
+	WRITE_NL(); WRITE_BOOL(*options, rot_invariant_sim);
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_BOOL(*options, mousewheel_scrolls);
@@ -543,6 +544,7 @@
 		if (READ_BOOL(*options, update_on_time_change)) continue;
 
 		if (READ_UINT_CLAMP(*options, duplicates_similarity_threshold, 0, 100)) continue;
+		if (READ_BOOL(*options, rot_invariant_sim)) continue;
 
 		if (READ_BOOL(*options, progressive_key_scrolling)) continue;
 
--- a/src/similar.c	Fri May 13 13:43:41 2016 +0100
+++ b/src/similar.c	Fri May 13 16:44:10 2016 +0100
@@ -348,8 +348,7 @@
 
 gdouble image_sim_compare(ImageSimilarityData *a, ImageSimilarityData *b)
 {
-	gboolean test_transformations = TRUE; /* could be a function parameter */
-	gint max_t = (test_transformations ? 8 : 1);
+	gint max_t = (options->rot_invariant_sim ? 8 : 1);
 
 	gint t;
 	gdouble score, max_score = 0;
@@ -407,8 +406,7 @@
  */
 gdouble image_sim_compare_fast(ImageSimilarityData *a, ImageSimilarityData *b, gdouble min)
 {
-	gboolean test_transformations = TRUE; /* could be a function parameter */
-	gint max_t = (test_transformations ? 8 : 1);
+	gint max_t = (options->rot_invariant_sim ? 8 : 1);
 
 	gint t;
 	gdouble score, max_score = 0;