@TOC
图像读写
Imgcodecs类中提供了图像的读写方法。使用 imread()函数读取磁盘中的图像;使用 imwrite()函数将图像写入磁盘中
以下图为例演示。(图片来源网络)
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);
}
}
运行效果如下:
在 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);
}
结果