Я успешно извлек 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;
}
}