public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);// 加载opencv c++动态库
splitMerge();
}
public static void splitMerge() {
Mat image1 = Imgcodecs.imread("d:/3.jpg", Imgcodecs.IMREAD_COLOR);
List<Mat> mv = new ArrayList<Mat>();// 分离出来的彩色通道数据
Core.split(image1, mv);// 分离色彩通道
mv.forEach(mat -> {
Imgcodecs.imwrite("d:/" + System.currentTimeMillis() + ".jpg", mat);// 把分离色彩通道 输出到文件中
});
Mat dest =new Mat();
Core.merge(mv, dest);// 合并split()方法分离出来的彩色通道数据
Imgcodecs.imwrite("d:/" + System.currentTimeMillis() + ".jpg", dest);// 把合并通道后数据 输出到文件中
}
public static void merge() {
Mat dest =new Mat();
List<Mat> mv = new ArrayList<Mat>();// 加载split()方法分离出来的彩色通道数据
mv.add(Imgcodecs.imread("d:/1523260296259.jpg", Imgcodecs.IMREAD_GRAYSCALE));//必须是单通道读取
mv.add(Imgcodecs.imread("d:/1523260296335.jpg", Imgcodecs.IMREAD_GRAYSCALE));//必须是单通道读取
mv.add(Imgcodecs.imread("d:/1523260296340.jpg", Imgcodecs.IMREAD_GRAYSCALE));//必须是单通道读取
Core.merge(mv, dest);// 合并通道
Imgcodecs.imwrite("d:/" + System.currentTimeMillis() + ".jpg", dest);// 把合并通道后数据 输出到文件中
}
版权声明:本文为u013195275原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。