From 1410e1f5607173811db1b7afb9b04646f0923f3f Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Sun, 7 May 2017 16:40:47 +0200 Subject: [PATCH] [CCV] Prevented unintended modifications of matrices Signed-off-by: Jim Martens --- ccv/sheet4/gauss_pyramid.cpp | 7 +++---- ccv/sheet4/lab_pyramid.cpp | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ccv/sheet4/gauss_pyramid.cpp b/ccv/sheet4/gauss_pyramid.cpp index 03059ee..108f51b 100644 --- a/ccv/sheet4/gauss_pyramid.cpp +++ b/ccv/sheet4/gauss_pyramid.cpp @@ -4,14 +4,13 @@ gauss_pyramid::gauss_pyramid() {} gauss_pyramid::gauss_pyramid(cv::Mat img, float sigma, int number_of_layers) { - _layers.push_back(img); cv::Mat blurredImage; - cv::Mat resizedImage = img; - for (int i = 1; i < number_of_layers; i++) + cv::Mat resizedImage = img.clone(); + for (int i = 0; i < number_of_layers; i++) { cv::GaussianBlur(resizedImage, blurredImage, cv::Size(0, 0), sigma, sigma, cv::BORDER_REPLICATE); + _layers.push_back(blurredImage.clone()); cv::resize(blurredImage, resizedImage, cv::Size(), 0.5, 0.5, cv::INTER_NEAREST); - _layers.push_back(resizedImage); } } diff --git a/ccv/sheet4/lab_pyramid.cpp b/ccv/sheet4/lab_pyramid.cpp index 63ff632..2dcf6ad 100644 --- a/ccv/sheet4/lab_pyramid.cpp +++ b/ccv/sheet4/lab_pyramid.cpp @@ -71,10 +71,10 @@ void lab_pyramid::compute_dog(lab_pyramid center, lab_pyramid surround, int numb cv::Mat dog_final_cs_L; cv::Mat dog_final_sc_L; cv::threshold(dog_raw_cs_L, dog_final_cs_L, 0, 1, cv::THRESH_TOZERO); - _cs_contrast_l.push_back(dog_final_cs_L); + _cs_contrast_l.push_back(dog_final_cs_L.clone()); cv::Mat dog_raw_sc_L = surround_layer_mat_L - center_layer_mat_L; cv::threshold(dog_raw_sc_L, dog_final_sc_L, 0, 1, cv::THRESH_TOZERO); - _sc_contrast_l.push_back(dog_final_sc_L); + _sc_contrast_l.push_back(dog_final_sc_L.clone()); // A channel cv::Mat center_layer_mat_a = center_a.get(layer); @@ -83,10 +83,10 @@ void lab_pyramid::compute_dog(lab_pyramid center, lab_pyramid surround, int numb cv::Mat dog_final_cs_a; cv::Mat dog_final_sc_a; cv::threshold(dog_raw_cs_a, dog_final_cs_a, 0, 1, cv::THRESH_TOZERO); - _cs_contrast_a.push_back(dog_final_cs_a); + _cs_contrast_a.push_back(dog_final_cs_a.clone()); cv::Mat dog_raw_sc_a = surround_layer_mat_a - center_layer_mat_a; cv::threshold(dog_raw_sc_a, dog_final_sc_a, 0, 1, cv::THRESH_TOZERO); - _sc_contrast_a.push_back(dog_final_sc_a); + _sc_contrast_a.push_back(dog_final_sc_a.clone()); // B channel cv::Mat center_layer_mat_b = center_b.get(layer); @@ -95,10 +95,10 @@ void lab_pyramid::compute_dog(lab_pyramid center, lab_pyramid surround, int numb cv::Mat dog_final_cs_b; cv::Mat dog_final_sc_b; cv::threshold(dog_raw_cs_b, dog_final_cs_b, 0, 1, cv::THRESH_TOZERO); - _cs_contrast_b.push_back(dog_final_cs_b); + _cs_contrast_b.push_back(dog_final_cs_b.clone()); cv::Mat dog_raw_sc_b = surround_layer_mat_b - center_layer_mat_b; cv::threshold(dog_raw_sc_b, dog_final_sc_b, 0, 1, cv::THRESH_TOZERO); - _sc_contrast_b.push_back(dog_final_sc_b); + _sc_contrast_b.push_back(dog_final_sc_b.clone()); } }