[OpenCV学习日记-java]-02-Mat对象基本操作

Mat对象

Mat对象是OpenCV中用来存储图像信息的内存对象,当通过Imgcodecd.imread()方法读入一个图像文件时,就会返回一个Mat对象实例


读取与写入

读取

Imgcodecs.imread("C:\\test\\tx.jpg");

他有两个重载的方法

 public static Mat imread(String 文件名) ;
 public static Mat imread(String 文件名 , int 加载图像类型) ;
加载图像类型
  • IMREAD_UNCHANGED 如果设置,则按原样返回加载的图像(使用Alpha通道,否则将被裁剪)。

  • IMREAD_GRAYSCALE 如果设置,则始终将图像转换为单通道灰度图像(编解码器内部转换)。

  • IMREAD_COLOR 如果设置,请始终将图像转换为3通道BGR彩色图像。

  • IMREAD_ANYDEPTH 如果设置,则当输入具有相应的深度时返回16位/ 32位图像,否则将其转换为8位。

  • IMREAD_ANYCOLOR 如果设置,则以任何可能的颜色格式读取图像。

  • IMREAD_LOAD_GDAL 如果已设置,请使用gdal驱动程序加载图像。

  • IMREAD_REDUCED_GRAYSCALE_2 如果设置,则始终将图像转换为单通道灰度图像,并且图像尺寸减小1/2。

  • IMREAD_REDUCED_COLOR_2 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/2。

  • IMREAD_REDUCED_GRAYSCALE_4 如果设置,则始终将图像转换为单通道灰度图像,并且图像尺寸减小1/4。

  • IMREAD_REDUCED_COLOR_4 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/4。

  • IMREAD_REDUCED_GRAYSCALE_8 如果设置,请始终将图像转换为单通道灰度图像,并且图像尺寸减小1/8。

  • IMREAD_REDUCED_COLOR_8 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/8。

  • IMREAD_IGNORE_ORIENTATION 如果已设置,请不要根据EXIF的方向标志旋转图像。

这里我们拿灰度图像进行测试

Mat img = Imgcodecs.imread("C:\\test\\tx.jpg",Imgcodecs.IMREAD_GRAYSCALE);

在这里插入图片描述


写入

图像写入的代码一下所示

Imgcodecs.imwrite("C:\\test\\tx_g.jpg",img);

他也有两个重载的方法

public static boolean imwrite(String 文件名, Mat 要写入的对象);
public static boolean imwrite(String 文件名, Mat 要写入的对象, MatOfInt  参数);

参数:

  • 例如要保存成png格式、tif格式等,用到这里的参数
  • 由于参数太多,这里就不列举了 可以查看api
  • https://docs.opencv.org/4.2.0/d4/da8/group__imgcodecs.html

这里我们就说第一个,第二种暂时用不到
这里我给大家示范了一下
在这里插入图片描述

获取Mat对象的信息

使用如下代码从Mat对象中得到图像的宽、高、维度、通道数、深度、类型信息:

int width = img.cols();//宽
int height = img.rows();//高
int dims = img.dims();//维度
int channels = img.channels();//通道数
int depth = img.depth();//深度
int type = img.type();//类型

Mat对象的创建与初始化

Mat对象的创建

Mat m1 = new Mat();
m1.create(new Size(3,3), CvType.CV_8UC3);

Mat m2 = new Mat(3,3,CvType.CV_8UC3);

Mat 对象的拷贝与克隆

通过Mat的 copyTo()与clone方法实现对象的拷贝与克隆

  • 克隆
Mat m1 = img.clone();
  • 拷贝
 Mat m2 = new Mat();
 img.copyTo(m2);

上一篇[OpenCV学习日记-java]-01-环境搭建与显示图片

发布了23 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_18604209/article/details/104029053
今日推荐