专栏简介 | ||
💒个人主页 📰专栏目录 点击上方查看更多内容 | 📖心灵鸡汤📖 我们唯一拥有的就是今天,唯一能把握的也是今天 建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 | 🧭文章导航🧭 ⬆️ 3.数据类型(CvType)与Scalar ⬇️ 5.待更新 |
Mat之创建、复制
- 一、Size对象
- 1.构造函数
- 2.方法介绍
- 1. area()
- 2.empty()
- 3.set(double[ ] vals)
- 二、Point对象
- 1.构造函数
- 2.方法介绍
- 1. dot(Point p)
- 2.inside(Rect r)
- 三、Mat之创建操作
- 1.方法介绍
- 1.create
- 2.ones
- 3.zeros
- 4.eye
- 5.clone
- 四、Mat之复制转换操作
- 1.方法介绍
- 1.assignTo
- 2.copySize
- 3.copyTo
本节只列举一些创建复制操作相关的函数,这之前先简单了解下Size对象和Point对象
一、Size对象
Size类用于表示图像的尺寸大小。它是一个具有宽度和高度属性的类,可以用来描述图像、矩形区域或其他需要尺寸信息的对象。 Size类的主要作用包括: 描述图像的尺寸:可以使用Size类的对象来表示图像的宽度和高度。这对于图像处理和分析任务非常重要,例如调整图像大小、裁剪图像、计算图像的比例等。 计算矩形区域的尺寸:Size类可以用来计算矩形区域的宽度和高度。这对于目标检测、物体跟踪和图像分割等任务非常有用。 作为函数的返回值类型:在OpenCV的许多函数中,Size类常被用作返回值类型,用于表示函数操作后得到的图像或区域的尺寸。 |
1.构造函数
构造函数挺简单的,它接收宽和高两个参数。这里我们可以看到Size(Point p)
这个构造函数,它接收一个Point对象创建Size对象,Point是一个点对象,通过接受x,y坐标定义一个点。如下所示
Size size = new Size(new Point(5,5));
它表示创建一个5x5大小的Size对象。相当于创建一个从(0,0)坐标开始到(5,5)坐标结束的一个图像尺寸。
2.方法介绍
这里仅列举出 部分方法。
1. area()
返回Size对象的面积,即宽度乘以高度的结果
2.empty()
验证Size是否为空。如果Size对象的宽度和高度都为0,则返回true;否则返回false。
3.set(double[ ] vals)
设置Size对象的值。vals一个包含两个元素的double数组,其中第一个元素表示宽度,第二个元素表示高度。通过这个方法将设置的两个值分别赋给Size对象的width和height属性
二、Point对象
Point类是一个表示二维坐标点的类。它包含了两个成员变量x和y,分别表示点的横坐标和纵坐标。
1.构造函数
2.方法介绍
这里只列举部分方法,
1. dot(Point p)
计算当前点与另一个点p的点积(dot product)。对于二维空间中的两个点A(x1, y1)和B(x2, y2),它们的点积可以通过以下公式计算:
dot = x1 * x2 + y1 * y2
其中,x1和y1是当前点的坐标,x2和y2是点p的坐标。
Point point1=new Point(1,2);
Point point2=new Point(2,4);
double dot = point1.dot(point2);
System.out.println("dot = " + dot);
2.inside(Rect r)
判断该点是否在指定的矩形内部。Rect 用来表示矩阵大小的位置的,这个我们先了解下即可,稍后章节中再具体的了解下这个类。
// 创建一个矩形区域
Rect rect = new Rect(0, 0, 100, 100);
// 创建一个点
Point point1 = new Point(50, 50);
Point point2 = new Point(150, 100);
// 判断点是否在矩形区域内
boolean inside1 = point1.inside(rect);
boolean inside2 = point2.inside(rect);
// 输出结果
System.out.println("point1.inside(rect) = " + point1.inside(rect));
System.out.println("point2.inside(rect) = " + point2.inside(rect));
结果:
point1.inside(rect) = true
point2.inside(rect) = false
三、Mat之创建操作
创建相关的方法
1.方法介绍
1.create
除了使用构造函数直接初始化Mat对象外,还可以通过create方法为Mat对象赋值
如下使用create(Size size, int type)
创建
Mat mat = new Mat();
mat.create(new Size(3,3), CvType.CV_8UC(3));
2.ones
创建一个所有元素都为1的矩阵
Mat ones = Mat.ones(3, 3, CvType.CV_8UC1);
3.zeros
创建一个所有元素都为0的矩阵
4.eye
创建一个对角线上值为1,其它位置为0的矩阵
5.clone
复制当前矩阵,并返回一个新的矩阵。请自行验证
四、Mat之复制转换操作
复制相关的方法
1.方法介绍
1.assignTo
将当前Mat对象的数据复制到指定的Mat对象中。也可以理解为覆盖替换操作
2.copySize
将另一个Mat对象的大小复制给当前的Mat对象
3.copyTo
将当前的Mat对象复制到另一个Mat对象中