diff --git a/cv-node/src/rtcensus.cpp b/cv-node/src/rtcensus.cpp index 61f3df1996e2b649e82bc6964882c5c35770bda7..91b2e78e355e6e87bd2750eedf88cb80d3f19ee9 100644 --- a/cv-node/src/rtcensus.cpp +++ b/cv-node/src/rtcensus.cpp @@ -54,10 +54,11 @@ static vector<uint16_t> dsi_ca(vector<uint64_t> &census_R, vector<uint64_t> &cen auto ds = d_stop - d_start; vector<uint16_t> result(census_R.size()*ds, 0); + const size_t eu = (sign>0) ? w-2-ds : w-2; for (size_t v=2; v<h-2; v++) { - for (size_t u=2; u<w-2; u++) { + for (size_t u=(sign>0)?2:ds+2; u<eu; u++) { const size_t ix = v*w*ds+u*ds; for (int n=-2; n<=2; n++) { const auto u_ = u + n; @@ -66,7 +67,7 @@ static vector<uint16_t> dsi_ca(vector<uint64_t> &census_R, vector<uint64_t> &cen for (size_t d=0; d<ds; d++) { const auto d_ = d * sign; - if (u_+d_ < 0 || u_+d_ >= w) continue; + //if (u_+d_ < 0 || u_+d_ >= w) continue; const auto v_ = (v + m)*w; auto r = census_R[u_+v_]; auto l = census_L[v_+(u_+d_)];