diff --git a/gui_qt/CMakeLists.txt b/gui_qt/CMakeLists.txt
index effd47fa526022be94ff701e113ca064a99f25fc..f9b418d714906ac406c69484175e6135519672c4 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 5b066ef5b06babf8888345fc99644011b7c79492..1ea0271eb1a00bab7ca0dcd83899d659bfb70277 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 436594284134f4b088a733051e345576b7a5c556..f7c51d7b86340e01a7475890a3a3bafcbe7a0c43 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 b318712dcfa8480242ce822b8673c1066bb60fd4..8319fd934d2fb9382394cf8f108e44edd91fc4f3 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 e7043a0c9628bcdd8fd5adf986dbc3a78b028a85..808b63aa2d914cd49cc266296085335a715bfac2 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 5f004b9f1f2cb77fc80b6f3bade41f026ff17cad..ddacaad38013b19d3e2c30f7696311c780d6b66f 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 e58c93c107f448d62b7cf2dd0c57c7e8eb8c0b78..cd98597b32954eb52953c11ebd80d413b62750f0 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 9301250f051381b1489a6365027da61548a5e5e9..4db88291800436a3bb14d1a4299bd1b3a3272bcb 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 7717842975210f5ff32eeb876f615737d4c024bd..317384b38eecf43faa939a946b7e4ee12e86a8d4 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 af7e128c9c8230653486bc5d1673405034e0eab8..78388816e39eb2f9ffd425ab619c419bf7e9f6a6 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 43417361cff3902bc8bf8bdfa0ba2a2f20c8b1b1..b34cd0f2057dbf9dc86f926e9e7b370e69a719f7 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 40d43790f96292be18559c6056912ed4c7537469..460f994a26ce2034b43ac5df467c87f4c946c5cf 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 9014a280bb9fc2e762813d2f02470377fc4b6c9a..c05ba12950ba24418d2f5a65b6cda222a980cb63 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 c4b91781d4662220f54eec84a6d74b1669d94ce7..5bf33a684ecc72e5f4dbe4461d639adde9b9e212 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 2e29ac07369b7a84c16b6bbab0e03cdcf23344d2..c843283c59e60de5b3e349706294f22677a0d1ea 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 d47ad6242bd40995a94337b7bb511d8979851837..394a78ca087d3c69d9aaaa41a4d31be45d4019ad 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 b249052bc4920a77bc49c1d7e0b9a0acb0fbcdfc..9f9202d0cd656e49183c77de30702977cae8a493 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 e7e59dda3b5c6c93209668edc50155c6d6d147bc..52aa482787c832c375bed7d8f3afc65ed2c5afff 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 28a8b9379606f6a34600ec9d677e74343ad0a522..9784af4771ab39c7c83481b81b83fe6802dc16ff 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 036feabf1aaa3a819d3f816f43b98d97772c0a1e..634565cabc34fd2a9e259f877f930987d4512b47 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 735af6e014669e777f01dad8518ac63b6e66456e..e57e15d8b0c085cb6604523df8c419fe8ec979a3 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);