这是非常简单的代码,但是我不知道它哪里写错了,我将图像从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上,这里是一个更完整的答案:
如我所见,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/