在 OpenCV 中,可以使用 copyTo() 函数来将一个 cv::Mat 对象的内容复制到另一个 cv::Mat 对象中。
void cv::Mat::copyTo(OutputArray m) const
m: 输出矩阵,用于存储复制的数据。
cv::Mat src = cv::imread("image.jpg", cv::IMREAD_COLOR);
cv::Mat dst;
src.copyTo(dst);
上面的代码将 src 矩阵中的内容复制到 dst 矩阵中,dst 矩阵的大小和类型会自动调整为与 src 相同。
还有另一个函数:
void cv::Mat::copyTo(OutputArray m, InputArray mask) const
m: 输出矩阵,用于存储复制的数据。
mask: 掩码矩阵,用于指定哪些元素需要复制。
cv::Mat src = cv::imread("image.jpg", cv::IMREAD_COLOR);
cv::Mat dst = cv::Mat::zeros(src.size(), src.type());
cv::Mat mask = cv::Mat::ones(src.size(), CV_8UC1);
src.copyTo(dst, mask);
上面的代码将 src 矩阵中对应掩码值为 1 的元素复制到 dst 矩阵中。