在项目中需要对unsigned char*格式的数据的排列顺序进行转换,由bgr转rgb,找到一个实现,记录一下。
// @param:
// input: {bgr_image:"读取图像为BGR格式的uchar字符数组", image_width:"图像的宽度", image_height:"图像的高度"}
// output: {rgb_image:"转化为RGB格式图像的uchar字符数组"}
// return: {0:"成功", 1:"输入或输出uchar数组错误"}
int BGR2RGB(const unsigned char* bgr_image , const int image_width , const int image_height , unsigned char* rgb_image){
if(!bgr_image || !rgb_image) return 1;
for(int i = 0; i < image_width * image_height; i++){
unsigned char b_value = *bgr_image++;
unsigned char g_value = *bgr_image++;
unsigned char r_value = *bgr_image++;
*rgb_image++ = r_value;
*rgb_image++ = g_value;
*rgb_image++ = b_value;
}
return 0;
}