opencv之repeat
repeat(const Mat& src, int ny, int nx);
ny表示在y轴方向复制多少次,
nx表示在x轴方向复制多少次。
#include <stdio.h>
#include <assert.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
#define SIZE 4
/**
*Mat img = imread("a.jpg", IMREAD_UNCHANGED);
* Mat img(size, CV_8UC3, Scalar(255, 255, 255));
*
*/
int main(int argc, char **argv) {
Mat m = (Mat_<int>(3, 3) << 1, 2, 3,
4, 5, 6,
7, 8, 9);
cout << "before:" << endl;
cout << m << endl;
cout << "------------" << endl;
Mat r = repeat(m, 2, 1);
cout << "after:" << endl;
cout << r << endl;
Mat r2 = repeat(m, 2, 2);
cout << "after:" << endl;
cout << r2 << endl;
return 0;
}
Mat r = repeat(m, 2, 1); 表示把矩阵m在y轴上再复制1次,x轴保持不变,
m运行之前为
1 2 3
4 5 6
7 8 9
m运行之后就是:
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
.
这个运行结果:
before:
[1, 2, 3;
4, 5, 6;
7, 8, 9]
------------
after:
[1, 2, 3;
4, 5, 6;
7, 8, 9;
1, 2, 3;
4, 5, 6;
7, 8, 9]
after:
[1, 2, 3, 1, 2, 3;
4, 5, 6, 4, 5, 6;
7, 8, 9, 7, 8, 9;
1, 2, 3, 1, 2, 3;
4, 5, 6, 4, 5, 6;
7, 8, 9, 7, 8, 9]