gpt4 book ai didi

c++ - Opencv cvConvertScale 面临的问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:25 27 4
gpt4 key购买 nike

这是非常简单的代码,但不知道哪里出错了,我在哪里将图像从 8 隐藏到 32

和这个一样的线程

How to convert an 8-bit OpenCV IplImage* to a 32-bit IplImage*?

char * InputImagePath = "E:\\Inp\\lg1.jpg";
IplImage* ImageIn = cvLoadImage(InputImagePath,1);

IplImage *img32 = cvCreateImage(cvGetSize(ImageIn), 32 , 3);
cvConvertScale(ImageIn,img32,1/255.);

cvSaveImage("E:\\Inp\\zzout.jpg",img32);

输出:zzout.jpg 保存在我的本地硬盘中,但它是空的(空白图像)

请帮我解决这个问题......受够了这个简单的问题

最佳答案

如果您卡在旧的 OpenCV 上,这里有一个更完整的答案:

  • 8 位图像 - 1 个颜色 channel
  • 24 位图像 - 3 个颜色 channel (蓝色、绿色、红色)
  • 32 位图像 - 4 个颜色 channel (BGR + Alpha - 在 PNG 中很常见)

如我所见,Pixel,您正在处理 JPEG,这意味着您需要处理 8 位(灰度)或 24 位(BGR)输入。

这是您需要的代码:

if (inputImage->nChannels == 1)
{
cvCvtColor(inputImage, image24bit, CV_GRAY2BGR);
}
else
{
cvCopy(inputImage, image24bit, NULL);
}

关于c++ - Opencv cvConvertScale 面临的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707104/

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