c++和OpenCV:问题转换图像到灰度
C++ and OpenCV: Issue Converting Image to grayscale
这是我的代码。这很简单。
Mat image = imread("filename.png");
imshow("image", image);
waitKey();
//Image looks great.
Mat image_gray;
image.convertTo(image_gray, CV_RGB2GRAY);
imshow("image", image_gray);
waitKey();
但是当我调用image.convertTo(image_gray, CV_RGB2GRAY);
线时,我得到以下错误消息:
OpenCV Error: Assertion failed (func != 0) in unknown function, file ......sr
copencvmodulescoresrcconvert.cpp, line 1020
使用OpenCV 2.4.3
方法convertTo
不进行颜色转换。
如果你想从BGR转换为GRAY,你可以使用函数cvtColor:
Mat image_gray;
cvtColor(image, image_gray, CV_BGR2GRAY);
cv::Mat::convertTo
函数不是用于颜色转换的。它用于类型转换。目标图像应具有与源图像相同的大小和通道数。
使用cv::cvtColor
函数将RGB转换为灰色。
cv::cvtColor(image,image_gray,CV_RGB2GRAY);
如果您需要在灰度中获取视频(例如从网络摄像头),您还可以将视频馈电的饱和度设置为零。(Python语法示例)
capture = cv.CaptureFromCAM(camera_index)
...
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_SATURATION,0)
image。convertTo (image_gray CV_RGB2GRAY); 这是错误的。正确的是
Mat gray_image;
cvtColor(image, gray_image, CV_BGR2GRAY);
试试这个。
相关文章:
- OpenCV - 如何在灰度图像上应用 Kmeans?
- C++灰度图像处理
- 如何显示具有 opengl 纹理的灰度图像
- C++ Gdi+将图像转换为灰度
- 将 BMP 图像转换为灰度
- (C++)(Visual Studio) 将高斯模糊滤镜应用于 RGB 中的灰度图像
- 使用 SSE 以最快的速度缩小 8 位灰度图像
- 使用 OpenCV 和 C++将 16 位灰度图像更改为彩色图像
- 有没有办法使用 glDrawPixel 渲染单通道灰度图像?
- 如何在OpenCV中减去两个不同尺寸的图像和灰度图像
- 使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
- 如何将图像转换为灰度 opengl c++
- 将高斯模糊应用于灰度图像
- C++:灰度位图标题和实时绘画+opencv图像处理
- 在OpenCV中将灰度图像转换为单色
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 使用 FreeImage 加载 RAW 灰度图像
- 使用条款 使用Opencv和Qt减去两个灰度图像
- 使用某些系数将图像转换为灰度的最快方法
- 使用OpenCV在Android上使用神经网络进行灰度图像分类