日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

OpenCV中图像垂直拼接函数vconcat的使用

發布時間:2024/9/21 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV中图像垂直拼接函数vconcat的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OPenCV版本:4.4

IDE:VS2019

功能描述

對給定的矩陣應用進行垂直連接

函數垂直連接兩個或更多的cv::Mat矩陣 (具有相同的列數).

函數原型1

CV_EXPORTS void vconcat(const Mat* src, size_t nsrc, OutputArray dst);

參數描述

  • @參數 src 輸入矩陣或矩陣向量.所有的矩陣必須具有相同的列數和相同的深度。
  • @參數 nsrc src中的矩陣個數.
  • @參數 dst 輸出矩陣.它和src具有相同的列數和深度。并且行數等于和src具有相同的行數.
  • @參考

? 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]

函數原型2

CV_EXPORTS void vconcat(InputArray src1, InputArray src2, OutputArray dst);

參數描述

  • 參數 src1 垂直連接的第一個輸入矩陣.
  • 參數 src2 垂直連接的第二個輸入矩陣.
  • 參數 dst 輸出矩陣. 它和 src1 、src2具有相同的列數和深度,它的行數與src和src2的行數的總和相同。

示例代碼

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]

函數原型3

CV_EXPORTS_W void vconcat(InputArrayOfArrays src, OutputArray dst);

參數描述

  • 參數 src 輸入矩陣. 所有的矩陣必須具有相同的列數和深度。

  • 參數 ds t輸出矩陣. 和src的列數和深度相同,行數等于src所有矩陣行數的總和.

示例代碼

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:

運行結果圖:

把多張圖像垂直連接成一張圖片:

#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; }

運行結果:

總結

以上是生活随笔為你收集整理的OpenCV中图像垂直拼接函数vconcat的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。