OpenCV-图像读写(java版)

时间:2022-10-12 11:17:56

@​​TOC​

图像读写

Imgcodecs类中提供了图像的读写方法。使用 imread()函数读取磁盘中的图像;使用 imwrite()函数将图像写入磁盘中

以下图为例演示。​​(图片来源网络)​

OpenCV-图像读写(java版)

1.imread()

​Mat imread(String filename, int flags)​​ imread()函数返回的是 Mat 对象,如果读取文件失败,则会返回一个空矩阵

public static void main(String[] args) {
String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
System.load(libraryPath);
Mat img= Imgcodecs.imread("sl.jpg",0);
if (img.empty()){
System.out.println("文件为空");
}else {
HighGui.imshow("img",img);
HighGui.waitKey(0);
}

}

运行效果如下:

OpenCV-图像读写(java版)

在 imread()函数中,flag 参数值有三种情况:

1️⃣ flag>0,该函数返回 3 通道图像,如果磁盘上的图像文件是单通道的灰 度图像,则会被强制转为 3 通道;

2️⃣ flag=0,该函数返回单通道图像,如果磁盘的图像文件是多通道图像,则 会被强制转为单通道;

3️⃣ flag<0,则函数不对图像进行通道转换。

2.imwrite()

​ imwrite(String filename, Mat img)​

将图像写入磁盘中

public static void main(String[] args) {
String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
System.load(libraryPath);
Mat img = Imgcodecs.imread("sl.jpg",0 );
//写图像
Imgcodecs.imwrite("sl_write.jpg",img);
HighGui.imshow("img",img);
HighGui.waitKey(0);
}

结果

OpenCV-图像读写(java版)