断言失败(scn == 3 || scn == 4)void cv :: cvtcolor(cv :: inputArr
Assertion failed (scn == 3 || scn == 4) in void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int), file /../Linux/./../src/color.cpp, line 8000
我正在尝试用本机代码学习openCV,我正在这里进行参考。
我成功地使用NDK-Build构建了该项目。
现在,我想在scan.cpp文件中进行更改,该文件负责获取图像点,裁剪,扫描并设置颜色。
我想对文件中的第321行给出不同的论点
cvtcolor(MBGRA,DST,CV_BGR2GRAY);
我可以给出任何其他论点 cv_bgr2gray 。
如果是的话?如果没有?
请指导我,告诉我是否缺少任何东西。谢谢。
是的,您可以提供任何想要的参数。您会得到合理的输出吗?这取决于。CV_BGR2GRAY期望BGR(3通道)输入,并将输出灰色(1个通道)。
如果输入为3频道BGR(即使不是真正的BGR,OpenCV也不会关心),则可以使用任何3个通道转换,例如CV_BGR2HSV,这将导致3频道HSV输出。
如果您的输入是1个通道 - 显然无法使用BGR 2灰色。
Mat bgraImage = imread("BGRA_IMAGE.png", -1); // 4 channel input image
Mat grayImage = imread("GRAY_IMAGE.png", CV_LOAD_IMAGE_GRAYSCALE); // 1 channel input image
Mat result;
cvtColor(bgraImage, result, CV_BGRA2GRAY); // CORRECT, input 4 channel, output will be 1 channel
cvtColor(bgraImage, result, CV_BGR2GRAY); // ALSO CORRECT
cvtColor(grayImage, result, CV_BGR2GRAY); // INCORRECT & will crash, input is 1 channel, expecting 3 or 4
cvtColor(grayImage, result, CV_GRAY2BGR); // CORRECT, input is 1 channel, output is 3 channel
您可以在此处看到所有可能的颜色转换,并在此处阅读有关它们的更多信息
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 概念中的cv限定符需要表达式参数列表
- 将CHW格式的浮点向量转换为cv::Mat
- 错误的cv::face FacemarkLBF实例化
- 如何检查给定的参数是否为 cv::noArray()?
- 开放 CV 中的动态内存分配,用于视频处理
- 如何在 opencv 中使用 cv::VideoCapture::waitAny()
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 将 cv::mat 转换为 QImage
- Inference pytorch C++ with alexnet and cv::imread image
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用
- cv::Normalise() 中的 L2_NORM 和 NORM_MINMAX 实现有什么区别?
- 将 cv::Mat 转换为 std::vector 的通用函数
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- 在 QML VideoOutput 中将 cv::mat 显示为 QVideoFrame
- 如何应用带有cv::cuda和C++的Canny Edge检测器?
- 断言失败(scn == 3 || scn == 4)void cv :: cvtcolor(cv :: inputArr