OpenCV中图像垂直拼接函数vconcat的使用
生活随笔
收集整理的這篇文章主要介紹了
OpenCV中图像垂直拼接函数vconcat的使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
OPenCV版本:4.4
IDE:VS2019
功能描述
對給定的矩陣應用進行垂直連接
函數(shù)垂直連接兩個或更多的cv::Mat矩陣 (具有相同的列數(shù)).
函數(shù)原型1
CV_EXPORTS void vconcat(const Mat* src, size_t nsrc, OutputArray dst);參數(shù)描述
- @參數(shù) src 輸入矩陣或矩陣向量.所有的矩陣必須具有相同的列數(shù)和相同的深度。
- @參數(shù) nsrc src中的矩陣個數(shù).
- @參數(shù) dst 輸出矩陣.它和src具有相同的列數(shù)和深度。并且行數(shù)等于和src具有相同的行數(shù).
- @參考
? cv::hconcat(const Mat*, size_t, OutputArray),
? cv::hconcat(InputArrayOfArrays, OutputArray)
? cv::hconcat(InputArray, InputArray, OutputArray)
示例代碼
cv::Mat matArray[] = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),}; cv::Mat out; cv::vconcat( matArray, 3, out ); //out: //[1, 1, 1, 1; // 2, 2, 2, 2; // 3, 3, 3, 3]函數(shù)原型2
CV_EXPORTS void vconcat(InputArray src1, InputArray src2, OutputArray dst);參數(shù)描述
- 參數(shù) src1 垂直連接的第一個輸入矩陣.
- 參數(shù) src2 垂直連接的第二個輸入矩陣.
- 參數(shù) dst 輸出矩陣. 它和 src1 、src2具有相同的列數(shù)和深度,它的行數(shù)與src和src2的行數(shù)的總和相同。
示例代碼
cv::Mat_<float> A = (cv::Mat_<float>(3, 2) << 1, 7,2, 8,3, 9);cv::Mat_<float> B = (cv::Mat_<float>(3, 2) << 4, 10,5, 11,6, 12);cv::Mat C;cv::vconcat(A, B, C);//C://[1, 7;// 2, 8;// 3, 9;// 4, 10;// 5, 11;// 6, 12]函數(shù)原型3
CV_EXPORTS_W void vconcat(InputArrayOfArrays src, OutputArray dst);參數(shù)描述
-
參數(shù) src 輸入矩陣. 所有的矩陣必須具有相同的列數(shù)和深度。
-
參數(shù) ds t輸出矩陣. 和src的列數(shù)和深度相同,行數(shù)等于src所有矩陣行數(shù)的總和.
示例代碼
std::vector<cv::Mat> matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),};cv::Mat out;cv::vconcat( matrices, out );//out://[1, 1, 1, 1;// 2, 2, 2, 2;// 3, 3, 3, 3]源代碼示例:
把兩張圖片垂直連接成一張圖片
#include <iostream> #include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("d:\\opencvtest\\images\\juice_small.png");cv::Mat image2 = cv::imread("d:\\opencvtest\\images\\juice2_small.png");cv::Mat output;cv::vconcat(image, image2, output);cv::imshow("vcontact", output);cv::waitKey(0);return 0; }原圖1:
原圖2:
運行結(jié)果圖:
把多張圖像垂直連接成一張圖片:
#include <iostream> #include <opencv2/opencv.hpp> #include <vector>int main() {cv::Mat image = cv::imread("d:\\opencvtest\\images\\juice_small.png");cv::Mat image2 = cv::imread("d:\\opencvtest\\images\\juice2_small.png");std::vector<cv::Mat> images;images.push_back(image);images.push_back(image2);images.push_back(image);cv::Mat output2;cv::vconcat(images, output2);cv::imshow("vcontact2", output2);cv::waitKey(0);return 0; }運行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的OpenCV中图像垂直拼接函数vconcat的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV中LUT函数的使用
- 下一篇: OpenCV中图像水平拼接函数hconc