首页 > 解决方案 > 为什么带有 ROI 的 copyto 会产生空白结果?

问题描述

我的图像定义如下:

cv::Mat mapCanva = cv::Mat(256, 256, CV_8UC1, cv::Scalar::all(0));

和别的

cv::Mat shapeToBlit is loaded from png file, its 100x100

shapeToBlit .copyTo(mapCanva );

工作正常,但生成的图像是 100x100,而我希望将 shapeToBlit 复制到 mapCanvas 之上,所以我这样做:

cv::Mat insetImage = mapCanva(cv::Rect(0, 0, 100, 100));
shapeToBlit .copyTo(insetImage);

但结果只是空白,就像没有复制任何内容一样。嗯嗯嗯。

如果我做:

shapeToBlit .copyTo(mapCanva(cv::Rect(100, 100, ourWidth, ourHeight)));

我的应用程序只是在 matrix.cpp 内在线崩溃:

CV_Assert(!fixedSize() || ((Mat*)obj)->size.operator()() == Size(cols, rows));

我究竟做错了什么?在 2.4 版和 3.4 版上都试过了

标签: c++opencv

解决方案


推荐阅读