我想捕捉图像并将其用作灰度图像。
我有以下代码:
CvCapture *p = cvCreateCameraCapture(0);
cvSetCaptureProperty(p, CV_CAP_PROP_FRAME_WIDTH, 1024);
cvSetCaptureProperty(p, CV_CAP_PROP_FRAME_HEIGHT, 1024);
IplImage* frame;
for (int i = 0; i < 25; i++)
{
frame = cvQueryFrame(p);
}
cvSaveImage("test.jpg", frame);
Mat r = imread("test.jpg", 1);
Mat inputImage;
cvtColor(r, inputImage, COLOR_RGB2GRAY);
在我的代码frame
中是RGB图像(三维)。当我用r读取保存的图像时它有两个通道。
我有两个问题:
答案 0 :(得分:1)
对于您的第一个问题:您应该检查您使用的是哪种相机/硬件?此外,通过运行确认帧是否有2个通道:
cout << img->nChannels << endl;
第二部分:
要将图像读取为灰色通道,请更改:
Mat r = imread("test.jpg", 1);
到
Mat r = imread("test.jpg", 0);
请参阅:docs