I confirm that this improves stitching. Especially with tall frames. On Sat, Mar 3, 2018 at 12:07 AM Vasily Khoruzhick <anars...@gmail.com> wrote:
> Hi Timur, > > On Wed, Feb 28, 2018 at 12:41 PM, Timur Celik <clk...@gmail.com> wrote: > > Hello everybody, > > > > I have already discussed this with Igor. There are two different bugs in > the > > assembling of frames. I think this needs some attention because it made > > libfprint unusable for me and it affects all sensors. > > > > In forward mode every frame stores the delta from the previous frame, in > > reverse mode it stores the delta to the next frame. This causes images to > > use the wrong delta while assembling in forward mode. The resulting > > stitching artifacts may be subtle when the movement was continuous, > because > > the deltas will be similar. > > Thanks for report. I'll try to look into it this weekend. > > > --- > > libfprint/assembling.c | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/libfprint/assembling.c b/libfprint/assembling.c > > index 1052f99..bf2ff13 100644 > > --- a/libfprint/assembling.c > > +++ b/libfprint/assembling.c > > @@ -279,11 +279,18 @@ struct fp_img *fpi_assemble_frames(struct > > fpi_frame_asmbl_ctx *ctx, > > do { > > fpi_frame = stripe->data; > > > > - y += fpi_frame->delta_y; > > - x += fpi_frame->delta_x; > > + if(reverse) { > > + y += fpi_frame->delta_y; > > + x += fpi_frame->delta_x; > > + } > > > > aes_blit_stripe(ctx, img, fpi_frame, x, y); > > > > + if(!reverse) { > > + y += fpi_frame->delta_y; > > + x += fpi_frame->delta_x; > > + } > > + > > stripe = g_slist_next(stripe); > > i++; > > } while (i < stripes_len); > > -- > > 2.14.3 > > > > > > The second bug is in reverse mode. The last image is always misplaced > > because the sign of the delta vector isn't corrected. This bug is always > be > > visible. > > > > --- > > libfprint/assembling.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/libfprint/assembling.c b/libfprint/assembling.c > > index bf2ff13..0781006 100644 > > --- a/libfprint/assembling.c > > +++ b/libfprint/assembling.c > > @@ -131,8 +131,8 @@ static unsigned int do_movement_estimation(struct > > fpi_frame_asmbl_ctx *ctx, > > > > if (reverse) { > > find_overlap(ctx, prev_stripe, cur_stripe, &min_error); > > - prev_stripe->delta_y = -prev_stripe->delta_y; > > - prev_stripe->delta_x = -prev_stripe->delta_x; > > + cur_stripe->delta_y = -cur_stripe->delta_y; > > + cur_stripe->delta_x = -cur_stripe->delta_x; > > } > > else > > find_overlap(ctx, cur_stripe, prev_stripe, &min_error); > > -- > > 2.14.3 > > > > > > I have opened a ticket on bugzilla > > (https://bugs.freedesktop.org/show_bug.cgi?id=105027) and hope to see > this > > confirmed and merged soon. > > > > Timur > > > > _______________________________________________ > > fprint mailing list > > fprint@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/fprint > _______________________________________________ > fprint mailing list > fprint@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/fprint >
_______________________________________________ fprint mailing list fprint@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/fprint