合並多個cv::Mat類型,即合並多個圖片的接口
阿新 • • 發佈:2018-06-05
區域 使用 depth left img style return urn 創建
1、
cv::Mat get_merage_image(cv::Mat cur_frame)
{
cv::Mat image_one=cur_frame;
cv::Mat image_two=cur_frame;
//創建連接後存入的圖像,兩幅圖像按左右排列,所以列數+1
cv::Mat img_merge(image_one.rows,image_one.cols+
image_two.cols+1,image_one.type());
//圖像拷貝,不能用Mat中的clone和copyTo函數,單幅圖像拷貝可用,clone和copyTo不僅拷貝圖像數據,還拷貝一///些其他的信息
//而現在是將兩幅圖像的數據拷貝到一副圖像中,只拷貝圖像數據
//因此用colRange來訪問圖像的列數據colRange第一參數是起始列,是從0開始索引,而第二個參數是結束列,
//從1開始索引,與我們以前使用的不同,因此,參數分別為0和image_one.cols
image_one.colRange(0,image_one.cols).
copyTo(img_merge.colRange(0,image_one.cols));
//第二幅圖像拷貝,中間的一行作為兩幅圖像的分割線
image_two.colRange(0,image_two.cols).copyTo(
img_merge.colRange(image_one.cols+1,img_merge.cols));
return img_merge;
}
2、
cv::Mat get_merage_image2(cv::Mat cur_frame)
{
cv::Mat img_merge;
cv::Size size(cur_frame.cols + cur_frame.cols, MAX(cur_frame.rows, cur_frame.rows));
img_merge.create(size, CV_MAKETYPE(cur_frame.depth(), 3));
img_merge = cv::Scalar::all(0);
cv::Mat outImg_left, outImg_right;
//2.在新建合並圖像中設置感興趣區域
outImg_left = img_merge(cv::Rect(0, 0, cur_frame.cols, cur_frame.rows));
outImg_right = img_merge(cv::Rect(cur_frame.cols, 0, cur_frame.cols, cur_frame.rows));
//3.將待拷貝圖像拷貝到感性趣區域中
cur_frame.copyTo(outImg_left);
cur_frame.copyTo(outImg_right);
return img_merge;
}
合並多個cv::Mat類型,即合並多個圖片的接口