From 9817f1793f876fe6c3ab96cfe3ae96775f812ae3 Mon Sep 17 00:00:00 2001 From: Ties de Kock <ties@tiesdekock.nl> Date: Sun, 16 Jun 2013 19:00:48 +0200 Subject: [PATCH] apply earlier fixes to second control flow --- xbob/flandmark/__init__.py | 2 +- xbob/flandmark/ext/ext.cpp | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/xbob/flandmark/__init__.py b/xbob/flandmark/__init__.py index fb661e8..78e5ae9 100644 --- a/xbob/flandmark/__init__.py +++ b/xbob/flandmark/__init__.py @@ -120,7 +120,7 @@ class Localizer(_flandmark.Localizer): return super(Localizer, self).__call__(gray, b_y, b_x, b_height, b_width) elif image.ndim == 2: - return super(Localizer, self).__call__(gray, b_y, b_x, b_height, b_width) + return super(Localizer, self).__call__(image, b_y, b_x, b_height, b_width) else: raise TypeError, "Localizer accepts images as numpy.ndarray objects with either 2 or 3 dimensions" diff --git a/xbob/flandmark/ext/ext.cpp b/xbob/flandmark/ext/ext.cpp index 5997d52..9fc71a1 100644 --- a/xbob/flandmark/ext/ext.cpp +++ b/xbob/flandmark/ext/ext.cpp @@ -139,16 +139,19 @@ class Localizer { ipl_image->imageData = (char*)input.bz<uint8_t,2>().data(); int bbox[4] = {b_x, b_y, b_x + b_width, b_y + b_height}; + int flandmark_result; { bob::python::no_gil unlock; - flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(), + flandmark_result = flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(), m_landmarks.get()); } - + list lmlist; ///< landmark list - for (int i = 0; i < (2*m_flandmark->data.options.M); i += 2) { - lmlist.append(make_tuple(m_landmarks[i], m_landmarks[i+1])); + if (flandmark_result == NO_ERR) { + for (int i = 0; i < (2*m_flandmark->data.options.M); i += 2) { + lmlist.append(make_tuple(m_landmarks[i], m_landmarks[i+1])); + } } return object(lmlist); -- GitLab