C++ 在opencv中复制区域时出现黑色图像
我编写了上面的代码,将4个图像合并为一个,但结果只是一个黑色图像。我错过了什么?所有4个图像的类型都相同可以尝试C++ 在opencv中复制区域时出现黑色图像,c++,opencv,C++,Opencv,我编写了上面的代码,将4个图像合并为一个,但结果只是一个黑色图像。我错过了什么?所有4个图像的类型都相同可以尝试tl.copyTo(newfile(cv::Rect(0,0,tl.cols,tl.rows))或newfile(cv::Rect(0,0,tl.cols,tl.rows))=tl.clone()。威廉姆斯评论就是解决方案。 cv::Mat tl = cv::imread(tl_path); cv::Mat tr = cv::imread(tr_path); cv::Mat bl =
tl.copyTo(newfile(cv::Rect(0,0,tl.cols,tl.rows))
或newfile(cv::Rect(0,0,tl.cols,tl.rows))=tl.clone()
。威廉姆斯评论就是解决方案。
cv::Mat tl = cv::imread(tl_path);
cv::Mat tr = cv::imread(tr_path);
cv::Mat bl = cv::imread(bl_path);
cv::Mat br = cv::imread(br_path);
cv::Mat newTile = cv::Mat(tl.rows * 2, tl.cols * 2, tl.type());
newTile(cv::Rect(0, 0, tl.cols, tl.rows)) = tl;
newTile(cv::Rect(tl.cols, 0, tl.cols, tl.rows)) = tr;
newTile(cv::Rect(0, tl.rows, tl.cols, tl.rows)) = bl;
newTile(cv::Rect(tl.cols, tl.rows, tl.cols, tl.rows)) = br;
cv::resize(newTile, newTile, tl.size());
cv::imwrite(output_path,newTile);