gpt4 book ai didi

c++ - 从 uint8 c++ 获取 RGB 像素值

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:41 26 4
gpt4 key购买 nike

我创建了一个 c# 函数,将 BitmapFrame 图片移动到 byte[](使用 copypixels)。然后我将这个缓冲区粘贴到 c++ dll 中,它是 uint8*。 cpp中有结构

typedef struct  
{
float r;
float g;
float b;
} pixel;

是否可以为这个 uint8* 缓冲区组织一个循环来逐个像素地获取(例如 x y - 图像的高度和宽度(我也有这个数据))? 类似

for(i=0; i< height;i++)
{
for(j=0; j <width;j++)
{
SomeWorkWithPixelsfromUint8(i,j) //???
}
}

SomeWorkWithPixelsfromUint8(i,j) 可以操作 RGB 结构

如此简单的 uint8 -> getPixel(x,y) ????

最佳答案

假设你的图片数据有这样的布局

  • 像素是每条扫描线的扫描线,从左到右
  • 一个像素被打包为 RGB,或者最终是 RGBA
  • 每个像素使用 pixelSize 字节(可能是 3,如果是 alpha channel 则可能是 4)

uint8_t* picData = ...;

uint8_t* pixel = picData;
for(int i = 0; i < height; ++i) {
for(int j = 0; j < width; ++j, pixel += pixelSize) {
float r = pixel[0];
float g = pixel[1];
float b = pixel[2];
// Do something with r, g, b
}
}

关于c++ - 从 uint8 c++ 获取 RGB 像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com