Imgcodecs
该类常用于媒体资源文件的读写,如imread()与imwrite(),在没有指明特定情况下,Mat对象的加载模式为CV_8UC3
读
读的核心在于Imgcodecs类的imread() 方法,该方法一个重要构造器如下:
imread(filePath):参数为被读取的文件路径
private void loadImg(String filePath){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Imgcodecs imgcodecs = new Imgcodecs();
Mat mat = imgcodecs.imread(filePath);
System.out.println("------> mat clos:" + mat.cols());
System.out.println("------> mat rows:" + mat.rows());
}
控制台结果如下
------> mat clos:200
------> mat rows:200
写
写的核心在于Imgcodecs类的imwrite() 方法,该方法一个重要构造器如下:
imwrite(filePath, Mat):第一个参数为待写入的文件路径,第二个为Mat对象
private void writeImg(String filePath){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Imgcodecs imgcodecs = new Imgcodecs();
Mat mat = imgcodecs.imread(filePath);
imgcodecs.imwrite("E:/Chrome/3.jpg", mat);
}
此方法调用后将在指定filePath路径下创建名为3.jpg的图片
注意:本例的读写均写为方法形式,接受一个String类型参数供以确定路径。建议在JavaFX(Swing也可)环境下使用FileChooser来确定路径,附录文件路径选择的代码如下:
Node source = (Node) actionEvent.getSource();
Window theStage = source.getScene().getWindow();
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.png");
fileChooser.getExtensionFilters().add(extFilter);
File file = fileChooser.showOpenDialog(theStage);
//写入文件
writeImg(file.getPath());