c++ - 如何使用 opencv::split()。崩溃

标签 c++ opencv std

如何正确使用split()?为什么在将图像分割到 channel 的 std::vector 后会崩溃?

cv::Mat imgOrig = cv::imread("cat.png", CV_LOAD_IMAGE_COLOR);

{
    std::vector<cv::Mat> Ichannels;
    cv::split(ImgOrig, Ichannels); // have 3 channels here
} // crash here. When going out of scope

更新: std::vector Ichannels(3) 修复了问题。根据this answer 但我不明白在我的情况下三个 channel 如何共享内存。里面的值(value)观是不一样的。也许应该在 imgOrig 和 channel 之间共享一些内存。

最佳答案

std::vector Ichannels(3);修复崩溃问题

关于c++ - 如何使用 opencv::split()。崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28713088/

相关文章:

c++ - 如何解析工厂函数中的构造函数签名

java - 在 C、C++ 和 Java 中提升/重新排序 : Must variable declarations always be on top in a context?

c++ - Visual Studio 11 Ultimate 静态分析显示无输出

image - 删除背景并将鹿作为前景?

opencv - 物体面积和最大物体长度

c++ - token 前的预期不合格 ID ... 'std::'

c++ - 我需要使用 'using namespace std' 命令吗?

c++ - 显式释放底层 C++ iostream 的内存

opencv - OpenCV 是否支持 v4l2?

c++ - 使用头文件而不是标准命名空间