Small speedup for dehaze, closes #4944
This commit is contained in:
@@ -197,23 +197,16 @@ void extract_channels(Imagefloat *img, array2D<float> &r, array2D<float> &g, arr
|
|||||||
const int W = img->getWidth();
|
const int W = img->getWidth();
|
||||||
const int H = img->getHeight();
|
const int H = img->getHeight();
|
||||||
|
|
||||||
#ifdef _OPENMP
|
array2D<float> imgR(W, H, img->r.ptrs, ARRAY2D_BYREFERENCE);
|
||||||
#pragma omp parallel for if (multithread)
|
guidedFilter(imgR, imgR, r, radius, epsilon, multithread);
|
||||||
#endif
|
|
||||||
for (int y = 0; y < H; ++y) {
|
|
||||||
for (int x = 0; x < W; ++x) {
|
|
||||||
r[y][x] = img->r(y, x);
|
|
||||||
g[y][x] = img->g(y, x);
|
|
||||||
b[y][x] = img->b(y, x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
guidedFilter(r, r, r, radius, epsilon, multithread);
|
array2D<float> imgG(W, H, img->g.ptrs, ARRAY2D_BYREFERENCE);
|
||||||
guidedFilter(g, g, g, radius, epsilon, multithread);
|
guidedFilter(imgG, imgG, g, radius, epsilon, multithread);
|
||||||
guidedFilter(b, b, b, radius, epsilon, multithread);
|
|
||||||
|
array2D<float> imgB(W, H, img->b.ptrs, ARRAY2D_BYREFERENCE);
|
||||||
|
guidedFilter(imgB, imgB, b, radius, epsilon, multithread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user