OpenCV3 Java分割图像 提取图像的RGB三原色(Core.split)

图形处理 09/12 阅读 710 views次 人气 1
摘要:

一个普通的彩色图像的每个像素点是由RGB三种颜色构成的,那么这种图像就是3通道图像;多通道图像,单独的R色、G色和B色都分别称为一个单通道图像。

OpenCV中的Mat类型可以理解为一种多维多通道的矩阵,如果一个普通的彩色图像读进来后赋值给一个Mat类型的对象M,那么这个M就是一个二维数组,这个二维数组中的每个元素都是一个含有三个RGB值得数据,那这个M就是一个二维三通道的矩阵。


代码案例:

package com.what21.opencv.demo;

import java.util.List;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;

public class SplitRGB {

	public static void main(String[] args) {
		try{
			System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
			
			Mat src=Imgcodecs.imread("D:/ShareData/internet.jpg");
			//读取图像到矩阵中,取灰度图像
			if(src.empty()){
				return ;
			}
			List<Mat> dst=new java.util.ArrayList<Mat>(3);
			Core.split(src, dst);
			
			Imgcodecs.imwrite("D:/ShareData/b.jpg", dst.get(0));
			Imgcodecs.imwrite("D:/ShareData/g.jpg", dst.get(1));
			Imgcodecs.imwrite("D:/ShareData/r.jpg", dst.get(2));
		}catch(Exception e){
			e.printStackTrace();
		}

	}

}


评论

该文章不支持评论!

分享到: