Java应用OpenCV指南其三:OpenCV中的图像操作

本文介绍了在Java中使用OpenCV进行图像操作,主要包括Mat类的创建、图像的输入输出。通过Mat类可以方便地对图像进行处理,imread()和imwrite()方法分别用于图像的读取和保存。此外,还提到了imencode()和imdecode()方法用于内存中的图像读写。文章详细阐述了各种方法的参数和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV中通过Mat类完成对图像的基本操作,包括对图像的写入、输出和处理都依赖于对Mat矩阵的操作。OpenCV通过将图像实例化为矩阵的方式,使得我们可以在最大的限度内对图像进行处理和更改,关于这部分之后我们之后再详细的进行说明。那么,我们就从Mat类和图像的输入输出开始吧。

 

一、Mat类的创建

在调用OpenCV类之前,需要载入库文件

 

static{System.loadLibrary(Core.NATIVE_LIBRARY_NAME);};

第一章的时候我们写过一小段简单的代码创建一个对角矩阵。我们很容易就能实例化一个Mat类对象:

 

Mat test = new Mat();

这样可以生成一个空的矩阵,通过调用Mat下的方法,也可以生成零矩阵,值全唯一的矩阵等(Mat.diagMat.eyeMat.onesMat.zeros

同样,我们可以在Mat类的同时设置矩阵的基本参数:

 

Mat test = new Mat(3, 3, CvType.CV_8UC1);

第一个参数代表矩阵的行数(rows),第二个参数代表矩阵的列数(cols),第三个参数(type)代表矩阵中像素点的位数和通道数。灰度图一个参数代表一个点,彩图三个数代表一个点,数值的范围均为0~255,数值越大,亮度越高,具体的含义我们在第一章:Java中安装与配置OpenCV的末尾也有提到。Type可以取到的值列在了下面的表里:

 

Modifier and Type

Field and Description

static int

CV_16S

static int

CV_16SC1

static int

CV_16SC2

static int

CV_16SC3

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值