image - Qt5 C++ - 如何在不使用 OpenCV 的情况下有效地将彩色图像拆分为 3 个通道
问题描述
我通过循环每个像素成功地从彩色图像中提取了 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;
}
}
解决方案
推荐阅读
- android - 如何在 Android 上的 Xamarin.forms 应用程序中呈现动态生成的地图图钉?
- c# - 自动更新 WinForms 应用程序(异步)
- c# - 如果 readalltext 找不到文件,请创建文件
- android - android 10 aosp 中哪里有 3 个点?
- android - 如何使用android作为ble广播器?
- javascript - 加载的 javascript 模块去哪里了?我能找到他们吗?
- git - 如何删除与标签同名的git分支?
- java - 实际Java中是否存在Processing和Eclipse中的拆分功能?
- ruby-on-rails - 分叉或克隆私有 gem
- python - 从 wscript 运行 python 脚本无法激活 conda