Qt5 C ++ - Как эффективно разделить цветное изображение на 3 канала без использования OpenCV - PullRequest
0 голосов
/ 25 февраля 2019

Я успешно извлек 3 канала из цветного изображения, зацикливая каждый пиксель.Однако, это слишком медленно, и я хотел бы попросить другой более эффективный и быстрый способ сделать это?

Ниже мой неэффективный способ сделать это:

for (int y = 0; y < HEIGHT; ++y)
{
    int x_stride = y * WIDTH;
    for (int x = 0; x < WIDTH; ++x)
    {
        int index = x_stride + x;
        QRgb rgb_1 = snap_buf_1.pixel(x, y);

        img_bit_red = qRed(rgb_1);
        img_bit_green = qGreen(rgb_1);
        img_bit_blue = qBlue(rgb_1);

        ucSnapBuffer1[0].GetBuffer_UNSAFE().data()[index] = img_bit_red;
        ucSnapBuffer1[1].GetBuffer_UNSAFE().data()[index] = img_bit_green;
        ucSnapBuffer1[2].GetBuffer_UNSAFE().data()[index] = img_bit_blue;
    }
}
...