gpt4 book ai didi

c - 如何在opencv中转换像素值以显示图像

转载 作者:行者123 更新时间:2023-11-30 14:28:03 24 4
gpt4 key购买 nike

我无法处理像素值(unsigned int)以转换为图像。我想要将像素值转换为图像格式的语法。 cvset(所有类型的命令)不起作用,我只得到特定的彩色图像,就好像只有红色或只有绿色等。请帮助我使用将像素值重建为图像的语法。 我能够将图像转换为像素,但无法将图像从这些相同的像素值转换回来。

最佳答案

您正在使用的图像中有多少个 channel ?这是一个重要的信息。请记住,灰度图像通常有 1 个 channel ,而 OpenCV 加载的彩色图像通常有 3 个 channel (R、G 和 B)。

要使用 C 语言处理 3 channel 图像,您可以这样做:

IplImage* pRGBImg = cvLoadImage("img.png", CV_LOAD_IMAGE_UNCHANGED); 
int width = pRGBImg->width;
int height = pRGBImg->height;
int bpp = pRGBImg->nChannels;

for (int i=0; i < width*height*bpp; i+=bpp)
{

pRGBImg->imageData[i] = r; // RED pixel
pRGBImg->imageData[i+1] = g; // GREEN
pRGBImg->imageData[i+2] = b; // BLUE
}

对于单 channel 图像,循环的核心会简单得多,因为您只需要对 img->imageData[i] 进行操作。

关于c - 如何在opencv中转换像素值以显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766307/

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