From 9794f5977c05f2f4c3d1761606b5719dce75f9b2 Mon Sep 17 00:00:00 2001 From: Leonid Beynenson Date: Mon, 27 Feb 2012 17:46:53 +0000 Subject: [PATCH] Changed the class OrbFeaturesFinder to make it work with CV_8UC4 and CV_8UC1 images. --- modules/stitching/src/matchers.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/stitching/src/matchers.cpp b/modules/stitching/src/matchers.cpp index 0859d0e..9b6759b 100644 --- a/modules/stitching/src/matchers.cpp +++ b/modules/stitching/src/matchers.cpp @@ -351,8 +351,18 @@ OrbFeaturesFinder::OrbFeaturesFinder(Size _grid_size, size_t n_features, const O void OrbFeaturesFinder::find(const Mat &image, ImageFeatures &features) { Mat gray_image; - CV_Assert(image.type() == CV_8UC3); - cvtColor(image, gray_image, CV_BGR2GRAY); + + CV_Assert((image.type() == CV_8UC3) || (image.type() == CV_8UC4) || (image.type() == CV_8UC1)); + + if (image.type() == CV_8UC3) { + cvtColor(image, gray_image, CV_BGR2GRAY); + } else if (image.type() == CV_8UC4) { + cvtColor(image, gray_image, CV_BGRA2GRAY); + } else if (image.type() == CV_8UC1) { + gray_image=image; + } else { + CV_Assert(false); + } if (grid_size.area() == 1) (*orb)(gray_image, Mat(), features.keypoints, features.descriptors); -- 2.7.4