From efd36904ff18c8118f13faee2efdd1ab2e481ccd Mon Sep 17 00:00:00 2001
From: Andrews Sobral <andrewssobral@gmail.com>
Date: Mon, 20 Aug 2018 14:12:57 +0200
Subject: [PATCH] small fixes, updated cmake file for qt user interface

---
 gui_qt/CMakeLists.txt                           |  4 ++++
 package_bgs/CodeBook.cpp                        |  6 +++---
 package_bgs/IBGS.h                              |  4 +++-
 package_bgs/IMBS/IMBS.cpp                       |  2 +-
 package_bgs/IMBS/IMBS.hpp                       |  2 +-
 package_bgs/KDE/NPBGSubtractor.cpp              |  6 +++---
 package_bgs/LBP_MRF/MotionDetection.hpp         |  2 +-
 package_bgs/LBP_MRF/graph.cpp                   |  2 +-
 package_bgs/MultiCue.cpp                        | 10 +++++-----
 package_bgs/MultiLayer.h                        |  2 +-
 package_bgs/MultiLayer/CMultiLayerBGS.cpp       |  4 ++--
 package_bgs/MultiLayer/LocalBinaryPattern.h     |  2 +-
 package_bgs/PBAS/PBAS.h                         |  2 +-
 package_bgs/ViBe/vibe-background-sequential.cpp |  4 ++--
 package_bgs/_template_/Amber.cpp                |  4 ++--
 package_bgs/lb/BGModel.h                        |  4 ++--
 package_bgs/lb/BGModelFuzzyGauss.cpp            | 10 +++++-----
 package_bgs/lb/BGModelFuzzySom.cpp              |  8 ++++----
 package_bgs/lb/BGModelGauss.cpp                 | 10 +++++-----
 package_bgs/lb/BGModelMog.cpp                   | 12 ++++++------
 package_bgs/lb/BGModelSom.cpp                   |  8 ++++----
 21 files changed, 57 insertions(+), 51 deletions(-)

diff --git a/gui_qt/CMakeLists.txt b/gui_qt/CMakeLists.txt
index effd47f..f9b418d 100644
--- a/gui_qt/CMakeLists.txt
+++ b/gui_qt/CMakeLists.txt
@@ -19,6 +19,10 @@ endif(UNIX)
 # Find includes in corresponding build directories
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
+if(POLICY CMP0071)
+  cmake_policy(SET CMP0071 NEW)
+endif()
+
 # Instruct CMake to run moc automatically when needed.
 set(CMAKE_AUTOMOC ON)
 
diff --git a/package_bgs/CodeBook.cpp b/package_bgs/CodeBook.cpp
index 5b066ef..1ea0271 100644
--- a/package_bgs/CodeBook.cpp
+++ b/package_bgs/CodeBook.cpp
@@ -91,7 +91,7 @@ void CodeBook::update_cb(const cv::Mat& frame)
       int pix = frame.at<uchar>(i, j);
       std::vector<codeword>& cm = cbMain[i][j];
       bool found = false;
-      for (int k = 0; k<cm.size(); k++)
+      for (int k = 0; k < (int)cm.size(); k++)
       {
         if (cm[k].min <= pix && pix <= cm[k].max && !found)
         {
@@ -141,7 +141,7 @@ void CodeBook::fg_cb(const cv::Mat& frame, cv::Mat& fg)
       int pix = frame.at<uchar>(i, j);
       std::vector<codeword>& cm = cbMain[i][j];
       bool found = false;
-      for (int k = 0; k<cm.size(); k++)
+      for (int k = 0; k < (int)cm.size(); k++)
       {
         if (cm[k].min <= pix && pix <= cm[k].max && !found)
         {
@@ -160,7 +160,7 @@ void CodeBook::fg_cb(const cv::Mat& frame, cv::Mat& fg)
       if (found) continue;
       found = false;
       std::vector<codeword>& cc = cbCache[i][j];
-      for (int k = 0; k<cc.size(); k++)
+      for (int k = 0; k < (int)cc.size(); k++)
       {
         if (cc[k].min <= pix && pix <= cc[k].max && !found)
         {
diff --git a/package_bgs/IBGS.h b/package_bgs/IBGS.h
index 4365942..f7c51d7 100644
--- a/package_bgs/IBGS.h
+++ b/package_bgs/IBGS.h
@@ -25,7 +25,9 @@ along with BGSLibrary.  If not, see <http://www.gnu.org/licenses/>.
 #include <opencv2/imgproc/imgproc_c.h>
 #include <opencv2/highgui/highgui_c.h>
 
-#define  CV_RGB(r, g, b)   cv::Scalar((b), (g), (r), 0)
+#ifndef CV_RGB
+  #define  CV_RGB(r, g, b)   cv::Scalar((b), (g), (r), 0)
+#endif
 
 namespace bgslibrary
 {
diff --git a/package_bgs/IMBS/IMBS.cpp b/package_bgs/IMBS/IMBS.cpp
index b318712..8319fd9 100644
--- a/package_bgs/IMBS/IMBS.cpp
+++ b/package_bgs/IMBS/IMBS.cpp
@@ -742,7 +742,7 @@ void BackgroundSubtractorIMBS::changeBg() {
   }
 }
 
-void BackgroundSubtractorIMBS::getBgModel(BgModel bgModel_copy[], int size) {
+void BackgroundSubtractorIMBS::getBgModel(BgModel bgModel_copy[], unsigned int size) {
   if (size != numPixels) {
     return;
   }
diff --git a/package_bgs/IMBS/IMBS.hpp b/package_bgs/IMBS/IMBS.hpp
index e7043a0..808b63a 100644
--- a/package_bgs/IMBS/IMBS.hpp
+++ b/package_bgs/IMBS/IMBS.hpp
@@ -212,5 +212,5 @@ public:
   unsigned int getFgThreshold() {
     return fgThreshold;
   }
-  void getBgModel(BgModel bgModel_copy[], int size);
+  void getBgModel(BgModel bgModel_copy[], unsigned int size);
 };
diff --git a/package_bgs/KDE/NPBGSubtractor.cpp b/package_bgs/KDE/NPBGSubtractor.cpp
index 5f004b9..ddacaad 100644
--- a/package_bgs/KDE/NPBGSubtractor.cpp
+++ b/package_bgs/KDE/NPBGSubtractor.cpp
@@ -667,7 +667,7 @@ void NPBGSubtractor::SequenceBGUpdate_Pairs(unsigned char * image,
   unsigned int i, ic;
   unsigned char * pSequence = BGModel->Sequence;
   unsigned char * PixelQTop = BGModel->PixelQTop;
-  unsigned int Top = BGModel->Top;
+  //unsigned int Top = BGModel->Top;
   unsigned int rate;
 
   int TemporalBufferTop = (int)BGModel->TemporalBufferTop;
@@ -882,13 +882,13 @@ void NPBGSubtractor::NPBGSubtraction_Subset_Kernel(
 
   double *kerneltable = KernelTable->kerneltable;
   int KernelHalfWidth = KernelTable->tablehalfwidth;
-  double *KernelSum = KernelTable->kernelsums;
+  //double *KernelSum = KernelTable->kernelsums;
   double KernelMaxSigma = KernelTable->maxsegma;
   double KernelMinSigma = KernelTable->minsegma;
   int KernelBins = KernelTable->segmabins;
   unsigned char * SDbins = BGModel->SDbinsImage;
 
-  unsigned char * SaturationImage = FilteredFGImage;
+  //unsigned char * SaturationImage = FilteredFGImage;
 
   // default sigmas .. to be removed.
   double sigma1;
diff --git a/package_bgs/LBP_MRF/MotionDetection.hpp b/package_bgs/LBP_MRF/MotionDetection.hpp
index e58c93c..cd98597 100644
--- a/package_bgs/LBP_MRF/MotionDetection.hpp
+++ b/package_bgs/LBP_MRF/MotionDetection.hpp
@@ -45,7 +45,7 @@ along with BGSLibrary.  If not, see <http://www.gnu.org/licenses/>.
 #include "MEImage.hpp"
 
 class CvBGStatModel;
-class CvPoint2D32f;
+struct CvPoint2D32f;
 
 // Struct for histogram update data of a pixel
 struct MEPixelDataType;
diff --git a/package_bgs/LBP_MRF/graph.cpp b/package_bgs/LBP_MRF/graph.cpp
index 9301250..4db8829 100644
--- a/package_bgs/LBP_MRF/graph.cpp
+++ b/package_bgs/LBP_MRF/graph.cpp
@@ -90,7 +90,7 @@ namespace ck
 
   void Graph::add_tweights(node_id i, captype cap_source, captype cap_sink)
   {
-    register captype delta = ((node*)i)->tr_cap;
+    register captype delta = ((node*)i)->tr_cap; // 'register' storage class specifier is deprecated and incompatible with C++17
     if (delta > 0) cap_source += delta;
     else           cap_sink -= delta;
     flow += (cap_source < cap_sink) ? cap_source : cap_sink;
diff --git a/package_bgs/MultiCue.cpp b/package_bgs/MultiCue.cpp
index 7717842..317384b 100644
--- a/package_bgs/MultiCue.cpp
+++ b/package_bgs/MultiCue.cpp
@@ -212,7 +212,7 @@ void MultiCue::Destroy()
 {
   if (g_bModelMemAllocated == FALSE && g_bNonModelMemAllocated == FALSE) return;
 
-  short nNeighborNum = g_nNeighborNum;
+  //short nNeighborNum = g_nNeighborNum;
 
   if (g_bModelMemAllocated == TRUE) {
     T_ReleaseTextureModelRelatedMemory();
@@ -367,7 +367,7 @@ void MultiCue::PostProcessing(IplImage* frame) {
 //														the background-model update function			                                   //
 //-----------------------------------------------------------------------------------------------------------------------------------------//
 void MultiCue::UpdateModel_Par() {
-  short nNeighborNum = g_nNeighborNum;
+  //short nNeighborNum = g_nNeighborNum;
 
   //Step1: update map construction
   for (int i = 0; i < g_iRHeight; i++) {
@@ -825,7 +825,7 @@ void MultiCue::SetBoundingBox(int iLabelCount, int** aLabelTable) {
   for (int i = 1; i < g_iRHeight; i++) {
     for (int j = 1; j < g_iRWidth; j++) {
 
-      if ((aLabelTable[i][j] == 0)) continue;
+      if (aLabelTable[i][j] == 0) continue;
 
       iBoundBoxIndex = aLabelTable[i][j] - 1;
 
@@ -1108,11 +1108,11 @@ double MultiCue::CalculateHausdorffDist(IplImage* input_image, IplImage* model_i
   sort(vTempDist.begin(), vTempDist.end()); //in ascending order
 
   double dQuantileVal = 0.9, dForwardDistance;
-  int iDistIndex = (int)(dQuantileVal*vTempDist.size()); if (iDistIndex == vTempDist.size()) iDistIndex -= 1;
+  int iDistIndex = (int)(dQuantileVal*vTempDist.size());
+  if (iDistIndex == vTempDist.size()) iDistIndex -= 1;
 
   dForwardDistance = sqrt(vTempDist[iDistIndex]);
   return dForwardDistance;
-
 }
 
 
diff --git a/package_bgs/MultiLayer.h b/package_bgs/MultiLayer.h
index af7e128..7838881 100644
--- a/package_bgs/MultiLayer.h
+++ b/package_bgs/MultiLayer.h
@@ -42,7 +42,7 @@ namespace bgslibrary
       int detectAfter;
       CMultiLayerBGS* BGS;
       Status status;
-      IplImage* img;
+      //IplImage* img;
       IplImage* org_img;
       IplImage* fg_img;
       IplImage* bg_img;
diff --git a/package_bgs/MultiLayer/CMultiLayerBGS.cpp b/package_bgs/MultiLayer/CMultiLayerBGS.cpp
index 4341736..b34cd0f 100644
--- a/package_bgs/MultiLayer/CMultiLayerBGS.cpp
+++ b/package_bgs/MultiLayer/CMultiLayerBGS.cpp
@@ -1419,7 +1419,7 @@ void CMultiLayerBGS::GetColoredBgMultiLayeredImage(IplImage *bg_multi_layer_img,
     lbp_idxes = (*PLBP).lbp_idxes;
     bLayeredBg = false;
 
-    if ((*_fg_maskD == 0)) {
+    if (*_fg_maskD == 0) {
       bg_layer_num = LBPs[lbp_idxes[0]].bg_layer_num;
       int first_layer_idx = 0;
       for (c = 0; c < (int)lbp_num; c++) {
@@ -1708,7 +1708,7 @@ void CMultiLayerBGS::UpdatePatternColorDistWeights(float *cur_pattern, float *bg
     bg_true_num += (bg_pattern[a] > 0.5f);
     bg_false_num += (bg_pattern[a] < 0.5f);
   }
-  m_fTextureWeight = expf(-(fabsf(cur_true_num - cur_false_num) + fabsf(bg_true_num - bg_false_num) + 0.8f) / (float)m_nLBPLength);
+  m_fTextureWeight = expf(-(std::abs(cur_true_num - cur_false_num) + std::abs(bg_true_num - bg_false_num) + 0.8f) / (float)m_nLBPLength);
   m_fTextureWeight = MAX(MIN(m_fTextureWeight, 0.5f), 0.1f);
   m_fColorWeight = 1.0f - m_fTextureWeight;
 }
diff --git a/package_bgs/MultiLayer/LocalBinaryPattern.h b/package_bgs/MultiLayer/LocalBinaryPattern.h
index 40d4379..460f994 100644
--- a/package_bgs/MultiLayer/LocalBinaryPattern.h
+++ b/package_bgs/MultiLayer/LocalBinaryPattern.h
@@ -85,7 +85,7 @@ private:
   void SetShiftedMeshGrid(CvSize img_size, float offset_x, float offset_y, CvMat *grid_map_x, CvMat *grid_map_y);
 
   float*	m_pRadiuses;			/* the circle radiuses for the LBP operator */
-  int	m_nLBPType;			/* the type of computing LBP operator */
+  //int	m_nLBPType;			/* the type of computing LBP operator */
   int*	m_pNeigPointsNums;		/* the numbers of neighboring pixels on multi-level circles */
   int	m_nImgsNum;			/* the number of multi-channel image */
   int	m_nLBPLevelNum;			/* the number of multi-level LBP operator */
diff --git a/package_bgs/PBAS/PBAS.h b/package_bgs/PBAS/PBAS.h
index 9014a28..c05ba12 100644
--- a/package_bgs/PBAS/PBAS.h
+++ b/package_bgs/PBAS/PBAS.h
@@ -138,7 +138,7 @@ private:
 
   double sumMagnitude;
   double formerMeanMag;
-  float formerDistanceBack;
+  //float formerDistanceBack;
 
   //####################################################################################
   //N - Number: Defining the size of the background-history-model
diff --git a/package_bgs/ViBe/vibe-background-sequential.cpp b/package_bgs/ViBe/vibe-background-sequential.cpp
index c4b9178..5bf33a6 100644
--- a/package_bgs/ViBe/vibe-background-sequential.cpp
+++ b/package_bgs/ViBe/vibe-background-sequential.cpp
@@ -301,7 +301,7 @@ int32_t libvibeModel_Sequential_Segmentation_8u_C1R(
   uint32_t width = model->width;
   uint32_t height = model->height;
   uint32_t matchingNumber = model->matchingNumber;
-  uint32_t matchingThreshold = model->matchingThreshold;
+  //uint32_t matchingThreshold = model->matchingThreshold;
 
   uint8_t *historyImage = model->historyImage;
   uint8_t *historyBuffer = model->historyBuffer;
@@ -397,7 +397,7 @@ int32_t libvibeModel_Sequential_Update_8u_C1R(
 
   /* All the frame, except the border. */
   uint32_t shift, indX, indY;
-  int x, y;
+  unsigned int x, y;
 
   for (y = 1; y < height - 1; ++y) {
     shift = rand() % width;
diff --git a/package_bgs/_template_/Amber.cpp b/package_bgs/_template_/Amber.cpp
index 2e29ac0..c843283 100644
--- a/package_bgs/_template_/Amber.cpp
+++ b/package_bgs/_template_/Amber.cpp
@@ -50,7 +50,7 @@ void Amber::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_
     return;
   }
 
-  unsigned int stride = width * 3;
+  //unsigned int stride = width * 3;
   unsigned char* image = static_cast<unsigned char*>(img_input.data);
 
   if (firstTime)
@@ -76,7 +76,7 @@ void Amber::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_
   unsigned char* oBuffer = static_cast<unsigned char*>(img_output.data);
   unsigned char* tmpSegmentationMap = output_segmentationMap;
 
-  for (int i = 0; i < width * height; i++)
+  for (unsigned int i = 0; i < width * height; i++)
   {
     *oBuffer = *tmpSegmentationMap;
 
diff --git a/package_bgs/lb/BGModel.h b/package_bgs/lb/BGModel.h
index d47ad62..394a78c 100644
--- a/package_bgs/lb/BGModel.h
+++ b/package_bgs/lb/BGModel.h
@@ -65,8 +65,8 @@ namespace lb_library
     IplImage* m_BGImage;
     IplImage* m_FGImage;
 
-    const int m_width;
-    const int m_height;
+    const unsigned int m_width;
+    const unsigned int m_height;
 
     virtual void Init() = 0;
     virtual void Update() = 0;
diff --git a/package_bgs/lb/BGModelFuzzyGauss.cpp b/package_bgs/lb/BGModelFuzzyGauss.cpp
index b249052..9f9202d 100644
--- a/package_bgs/lb/BGModelFuzzyGauss.cpp
+++ b/package_bgs/lb/BGModelFuzzyGauss.cpp
@@ -53,7 +53,7 @@ namespace lb_library
       DBLRGB *pMu = m_pMu;
       DBLRGB *pVar = m_pVar;
 
-      for (int k = 0; k < (m_width * m_height); k++)
+      for (unsigned int k = 0; k < (m_width * m_height); k++)
       {
         pMu->Red = 0.0;
         pMu->Green = 0.0;
@@ -107,9 +107,9 @@ namespace lb_library
 
       Image<BYTERGB> prgbSrc(m_SrcImage);
 
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           pMu->Red = prgbSrc[i][j].Red;
           pMu->Green = prgbSrc[i][j].Green;
@@ -136,9 +136,9 @@ namespace lb_library
       Image<BYTERGB> prgbBG(m_BGImage);
       Image<BYTERGB> prgbFG(m_FGImage);
 
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           double srcR = (double)prgbSrc[i][j].Red;
           double srcG = (double)prgbSrc[i][j].Green;
diff --git a/package_bgs/lb/BGModelFuzzySom.cpp b/package_bgs/lb/BGModelFuzzySom.cpp
index e7e59dd..52aa482 100644
--- a/package_bgs/lb/BGModelFuzzySom.cpp
+++ b/package_bgs/lb/BGModelFuzzySom.cpp
@@ -157,11 +157,11 @@ namespace lb_library
     {
       Image<BYTERGB> prgbSrc(m_SrcImage);
 
-      for (int j = 0; j < m_height; j++)
+      for (unsigned int j = 0; j < m_height; j++)
       {
         int jj = m_offset + j*(N + m_pad);
 
-        for (int i = 0; i < m_width; i++)
+        for (unsigned int i = 0; i < m_width; i++)
         {
           int ii = m_offset + i*(M + m_pad);
 
@@ -204,11 +204,11 @@ namespace lb_library
       Image<BYTERGB> prgbBG(m_BGImage);
       Image<BYTERGB> prgbFG(m_FGImage);
 
-      for (int j = 0; j < m_height; j++)
+      for (unsigned int j = 0; j < m_height; j++)
       {
         int jj = m_offset + j*(N + m_pad);
 
-        for (int i = 0; i < m_width; i++)
+        for (unsigned int i = 0; i < m_width; i++)
         {
           int ii = m_offset + i*(M + m_pad);
 
diff --git a/package_bgs/lb/BGModelGauss.cpp b/package_bgs/lb/BGModelGauss.cpp
index 28a8b93..9784af4 100644
--- a/package_bgs/lb/BGModelGauss.cpp
+++ b/package_bgs/lb/BGModelGauss.cpp
@@ -52,7 +52,7 @@ namespace lb_library
       DBLRGB *pMu = m_pMu;
       DBLRGB *pVar = m_pVar;
 
-      for (int k = 0; k < (m_width * m_height); k++)
+      for (unsigned int k = 0; k < (m_width * m_height); k++)
       {
         pMu->Red = 0.0;
         pMu->Green = 0.0;
@@ -102,9 +102,9 @@ namespace lb_library
 
       Image<BYTERGB> prgbSrc(m_SrcImage);
 
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           pMu->Red = prgbSrc[i][j].Red;
           pMu->Green = prgbSrc[i][j].Green;
@@ -131,9 +131,9 @@ namespace lb_library
       Image<BYTERGB> prgbBG(m_BGImage);
       Image<BYTERGB> prgbFG(m_FGImage);
 
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           double srcR = (double)prgbSrc[i][j].Red;
           double srcG = (double)prgbSrc[i][j].Green;
diff --git a/package_bgs/lb/BGModelMog.cpp b/package_bgs/lb/BGModelMog.cpp
index 036feab..634565c 100644
--- a/package_bgs/lb/BGModelMog.cpp
+++ b/package_bgs/lb/BGModelMog.cpp
@@ -54,9 +54,9 @@ namespace lb_library
       MOGDATA *pMOG = m_pMOG;
       int *pK = m_pK;
 
-      for (int i = 0; i < (m_width * m_height); i++)
+      for (unsigned int i = 0; i < (m_width * m_height); i++)
       {
-        for (int k = 0; k < NUMBERGAUSSIANS; k++)
+        for (unsigned int k = 0; k < NUMBERGAUSSIANS; k++)
         {
           pMOG->mu.Red = 0.0;
           pMOG->mu.Green = 0.0;
@@ -116,9 +116,9 @@ namespace lb_library
       Image<BYTERGB> prgbSrc(m_SrcImage);
 
       int n = 0;
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           pMOG[0].mu.Red = prgbSrc[i][j].Red;
           pMOG[0].mu.Green = prgbSrc[i][j].Green;
@@ -153,9 +153,9 @@ namespace lb_library
       Image<BYTERGB> prgbFG(m_FGImage);
 
       int n = 0;
-      for (int i = 0; i < m_height; i++)
+      for (unsigned int i = 0; i < m_height; i++)
       {
-        for (int j = 0; j < m_width; j++)
+        for (unsigned int j = 0; j < m_width; j++)
         {
           double srcR = (double)prgbSrc[i][j].Red;
           double srcG = (double)prgbSrc[i][j].Green;
diff --git a/package_bgs/lb/BGModelSom.cpp b/package_bgs/lb/BGModelSom.cpp
index 735af6e..e57e15d 100644
--- a/package_bgs/lb/BGModelSom.cpp
+++ b/package_bgs/lb/BGModelSom.cpp
@@ -157,11 +157,11 @@ namespace lb_library
     {
       Image<BYTERGB> prgbSrc(m_SrcImage);
 
-      for (int j = 0; j < m_height; j++)
+      for (unsigned int j = 0; j < m_height; j++)
       {
         int jj = m_offset + j*(N + m_pad);
 
-        for (int i = 0; i < m_width; i++)
+        for (unsigned int i = 0; i < m_width; i++)
         {
           int ii = m_offset + i*(M + m_pad);
 
@@ -204,11 +204,11 @@ namespace lb_library
       Image<BYTERGB> prgbBG(m_BGImage);
       Image<BYTERGB> prgbFG(m_FGImage);
 
-      for (int j = 0; j < m_height; j++)
+      for (unsigned int j = 0; j < m_height; j++)
       {
         int jj = m_offset + j*(N + m_pad);
 
-        for (int i = 0; i < m_width; i++)
+        for (unsigned int i = 0; i < m_width; i++)
         {
           int ii = m_offset + i*(M + m_pad);
 
-- 
GitLab