OpenCV图像从RGB转换为灰度异常

OpenCV图像从RGB转换为灰度异常,opencv,Opencv,当我尝试将RGB图像转换为灰度时,出现了一个奇怪的异常(异常:cv::内存位置0x002EB6CC处的异常)。有人能帮我吗 const cv::Mat img1 = cv::imread(filename, 0) cv::Mat gs_rgb(img1.size(), CV_8UC1); cv::cvtColor(img1, gs_rgb, CV_RGB2GRAY); 您正在以灰度加载图像,并尝试再次将灰度转换为灰度 线路 const cv::Mat img1 = cv::im

当我尝试将RGB图像转换为灰度时,出现了一个奇怪的异常(异常:cv::内存位置0x002EB6CC处的异常)。有人能帮我吗

  const cv::Mat img1 = cv::imread(filename, 0)
  cv::Mat gs_rgb(img1.size(), CV_8UC1);
  cv::cvtColor(img1, gs_rgb, CV_RGB2GRAY);

您正在以灰度加载图像,并尝试再次将灰度转换为灰度

线路

  const cv::Mat img1 = cv::imread(filename, 0)
将加载图像

第二个论点在哪里

=0->CV_LOAD_IMAGE_GRAYSCALE->load gray scale
=1->CV_LOAD_IMAGE_COLOR->load color
<0->CV_LOAD_IMAGE_ANYDEPTH->Return the loaded image as is (with alpha channel).
或者将其加载为颜色,然后转换为灰度

  const cv::Mat img1 = cv::imread(filename, 1);//load color
  Mat gray;//no need of allocation, will allocate automatically.
  cv::cvtColor(img1,gray, CV_BGR2GRAY);//opencv default color order is BGR

请在中查看更多信息

你试过其他图片吗?其他文件类型呢?此问题没有足够的信息可以很好地回答。请在问题中包含更多信息,以便更好地描述哪些不起作用。第一步是确保正确加载图像。另外,由于OpenCV默认使用BGR排序,因此您需要传递
CV\u bgr2 gray
  const cv::Mat img1 = cv::imread(filename, 1);//load color
  Mat gray;//no need of allocation, will allocate automatically.
  cv::cvtColor(img1,gray, CV_BGR2GRAY);//opencv default color order is BGR