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