没有正确检索图像
Image is not retrieved correctly
我想捕获一张图像并将其用作灰度图像。
我有以下代码:
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读取保存的图像时,它有两个通道。
我有两个问题:
- 为什么会这样?
- 我怎么能有一个一维的图像是灰度级别?
对于您的第一个问题:您应该检查您正在使用的相机/硬件?另外,通过运行
确认帧是否有2个通道 cout << img->nChannels << endl;
第二部分:
将图像读取为灰色通道,更改:
Mat r = imread("test.jpg", 1);
Mat r = imread("test.jpg", 0);
参见:docs
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 使用VerQueryValue检索应用程序的文件描述
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 是否可以从格式字符串中检索"width"
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 将RGB图像保存为PPM格式
- 从数据库中以 blob 数据类型形式存储的原始图像数据中检索 CImage 对象
- 没有正确检索图像
- 我如何通过网络浏览器抓取从相机检索到的图像
- 绘制从二值图像中检索到的轮廓
- 使用c++ Boost或STL和Mysql存储和检索图像
- 正在从内存中检索图像数据
- 使用step方法检索图像的bgr值的代码有什么问题