diff --git a/libfprint/drivers/aes1610.c b/libfprint/drivers/aes1610.c
index 4ea2ff3..6fdecba 100644
--- a/libfprint/drivers/aes1610.c
+++ b/libfprint/drivers/aes1610.c
@@ -614,6 +614,7 @@ capture_read_strip_cb (FpiUsbTransfer *transfer, FpDevice *device,
       self->strips = g_slist_reverse (self->strips);
       fpi_do_movement_estimation (&assembling_ctx, self->strips);
       img = fpi_assemble_frames (&assembling_ctx, self->strips);
+      img->flags |= FPI_IMAGE_PARTIAL;
 
       g_slist_free_full (self->strips, g_free);
       self->strips = NULL;
diff --git a/libfprint/drivers/aes2501.c b/libfprint/drivers/aes2501.c
index 57b0cca..450ac6e 100644
--- a/libfprint/drivers/aes2501.c
+++ b/libfprint/drivers/aes2501.c
@@ -458,6 +458,7 @@ capture_read_strip_cb (FpiUsbTransfer *transfer, FpDevice *_dev,
           fpi_do_movement_estimation (&assembling_ctx, self->strips);
           img = fpi_assemble_frames (&assembling_ctx,
                                      self->strips);
+          img->flags |= FPI_IMAGE_PARTIAL;
           g_slist_free_full (self->strips, g_free);
           self->strips = NULL;
           self->strips_len = 0;
diff --git a/libfprint/drivers/aes2550.c b/libfprint/drivers/aes2550.c
index 1ebf933..07380b8 100644
--- a/libfprint/drivers/aes2550.c
+++ b/libfprint/drivers/aes2550.c
@@ -230,6 +230,7 @@ capture_set_idle_reqs_cb (FpiUsbTransfer *transfer,
 
       self->strips = g_slist_reverse (self->strips);
       img = fpi_assemble_frames (&assembling_ctx, self->strips);
+      img->flags |= FPI_IMAGE_PARTIAL;
       g_slist_free_full (self->strips, g_free);
       self->strips = NULL;
       self->strips_len = 0;
diff --git a/libfprint/drivers/aesx660.c b/libfprint/drivers/aesx660.c
index 0781606..8921d68 100644
--- a/libfprint/drivers/aesx660.c
+++ b/libfprint/drivers/aesx660.c
@@ -331,6 +331,7 @@ capture_set_idle_cmd_cb (FpiUsbTransfer *transfer, FpDevice *device,
 
       priv->strips = g_slist_reverse (priv->strips);
       img = fpi_assemble_frames (cls->assembling_ctx, priv->strips);
+      img->flags |= FPI_IMAGE_PARTIAL;
       g_slist_foreach (priv->strips, (GFunc) g_free, NULL);
       g_slist_free (priv->strips);
       priv->strips = NULL;
diff --git a/libfprint/drivers/elan.c b/libfprint/drivers/elan.c
index dfccf1e..a498539 100644
--- a/libfprint/drivers/elan.c
+++ b/libfprint/drivers/elan.c
@@ -325,6 +325,7 @@ elan_submit_image (FpImageDevice *dev)
   g_slist_foreach (raw_frames, (GFunc) self->process_frame, &frames);
   fpi_do_movement_estimation (&assembling_ctx, frames);
   img = fpi_assemble_frames (&assembling_ctx, frames);
+  img->flags |= FPI_IMAGE_PARTIAL;
 
   g_slist_free_full (frames, g_free);
 
diff --git a/libfprint/drivers/upektc_img.c b/libfprint/drivers/upektc_img.c
index d5aaf72..be7cdba 100644
--- a/libfprint/drivers/upektc_img.c
+++ b/libfprint/drivers/upektc_img.c
@@ -310,6 +310,7 @@ capture_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
           fp_dbg ("Image size is %lu\n",
                   self->image_size);
           img = fp_image_new (IMAGE_WIDTH, IMAGE_HEIGHT);
+          img->flags |= FPI_IMAGE_PARTIAL;
           memcpy (img->data, self->image_bits,
                   IMAGE_SIZE);
           fpi_image_device_image_captured (dev, img);
diff --git a/libfprint/fp-image.c b/libfprint/fp-image.c
index 2e46e92..c2c9742 100644
--- a/libfprint/fp-image.c
+++ b/libfprint/fp-image.c
@@ -281,6 +281,7 @@ fp_image_detect_minutiae_thread_func (GTask        *task,
   gint map_w, map_h;
   gint bw, bh, bd;
   gint r;
+  g_autofree LFSPARMS *lfsparms;
 
   /* Normalize the image first */
   if (data->flags & FPI_IMAGE_H_FLIPPED)
@@ -294,12 +295,15 @@ fp_image_detect_minutiae_thread_func (GTask        *task,
 
   data->flags &= ~(FPI_IMAGE_H_FLIPPED | FPI_IMAGE_V_FLIPPED | FPI_IMAGE_COLORS_INVERTED);
 
+  lfsparms = g_memdup (&g_lfsparms_V2, sizeof (LFSPARMS));
+  lfsparms->remove_perimeter_pts = data->flags & FPI_IMAGE_PARTIAL ? TRUE : FALSE;
+
   timer = g_timer_new ();
   r = get_minutiae (&minutiae, &quality_map, &direction_map,
                     &low_contrast_map, &low_flow_map, &high_curve_map,
                     &map_w, &map_h, &bdata, &bw, &bh, &bd,
                     data->image, data->width, data->height, 8,
-                    data->ppmm, &g_lfsparms_V2);
+                    data->ppmm, lfsparms);
   g_timer_stop (timer);
   fp_dbg ("Minutiae scan completed in %f secs", g_timer_elapsed (timer, NULL));
 
diff --git a/libfprint/fpi-image.h b/libfprint/fpi-image.h
index dd6dbf8..fcd62b8 100644
--- a/libfprint/fpi-image.h
+++ b/libfprint/fpi-image.h
@@ -37,6 +37,7 @@ typedef enum {
   FPI_IMAGE_V_FLIPPED       = 1 << 0,
   FPI_IMAGE_H_FLIPPED       = 1 << 1,
   FPI_IMAGE_COLORS_INVERTED = 1 << 2,
+  FPI_IMAGE_PARTIAL         = 1 << 3,
 } FpiImageFlags;
 
 /**