diff options
Diffstat (limited to 'src/image.cpp')
| -rw-r--r-- | src/image.cpp | 42 |
1 files changed, 10 insertions, 32 deletions
diff --git a/src/image.cpp b/src/image.cpp index c2ee5b4..e22c9bb 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -111,36 +111,21 @@ void Image::rotate() { QElapsedTimer t; t.start(); - // start_timer(rotate); - using namespace std; - - // Image::data_t &d = *data; -#pragma omp parallel -#pragma omp for - for (size_t i = 0; i < img_height; ++i) { - for (size_t j = 0; j < img_width; ++j) { - // for (size_t j = 0; j < img_width; j += 4) { + for (size_t j = 0; j < img_width; ++j) { + for (size_t i = 0; i < img_height; ++i) { rotated_cw[j][i] = data[img_height - i - 1][j]; - // rotated_cw[j][i] = d[img_height - i - 1][j]; - - // rotated_cw[j + 0][i] = data[img_height - i - 1][j + 0]; - // rotated_cw[j + 1][i] = data[img_height - i - 1][j + 1]; - // rotated_cw[j + 2][i] = data[img_height - i - 1][j + 2]; - // rotated_cw[j + 3][i] = data[img_height - i - 1][j + 3]; - - // rotated_cw[j][i] = dataAt(img_height - i - 1, j); } } - // stop_timer(rotate); rot_elapsed_ns += t.nsecsElapsed(); } -std::shared_ptr<Pixels> Image::pixels() const +Pixels Image::pixels() const { - auto result = std::make_shared<Pixels>(); - result->counters = counters; + // auto result = std::make_shared<Pixels>(); + Pixels result; + result.counters = counters; start_timer(process_columns); // std::transform(std::execution::par_unseq, @@ -149,19 +134,12 @@ std::shared_ptr<Pixels> Image::pixels() const // result->pixels.begin(), // [](const auto &column) -> float { return process_column(column); }); -#pragma omp chunk -#pragma omp parallel for - for (size_t i = 0; i < img_width; i++) { - result->pixels[i] = process_column(rotated_cw[i]); + // #pragma omp chunk + // #pragma omp parallel for + for (size_t i = 0; i < img_width / 4; i++) { + result.pixels[i] = process_column(rotated_cw[i]); } - // for (size_t i = 640 - 5; i < 640 + 5; ++i) { - // std::cout << result->pixels[i] << ' '; - // } - // std::cout << std::endl; - - stop_timer(process_columns); - return result; } |
