package pool.tests; import java.util.ArrayList; import java.util.List; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.highgui.Highgui; import org.opencv.imgproc.Imgproc; import pool.utils.CVLoader; import pool.utils.ImgWindow; public class ColorSpace { public static void main (String[] args) { CVLoader.load(); Mat orig = Highgui.imread("data/topdown-6.jpg"); Mat hsv = new Mat(); Imgproc.cvtColor(orig, hsv, Imgproc.COLOR_BGR2YCrCb); List<Mat> channels = new ArrayList<Mat>(); for(int i = 0; i < hsv.channels(); i++) { Mat channel = new Mat(); channels.add(channel); } Core.split(hsv, channels); for(Mat channel: channels) { ImgWindow.newWindow(channel); } } public static Mat getChannel(Mat img, int channelIdx) { List<Mat> channels = new ArrayList<Mat>(); for(int i = 0; i < img.channels(); i++) { Mat channel = new Mat(); channels.add(channel); } Core.split(img, channels); return channels.get(channelIdx); } public static Mat getChannel(Mat orig, int colorSpace, int channelIdx) { Mat hsv = new Mat(); Imgproc.cvtColor(orig, hsv, colorSpace); List<Mat> channels = new ArrayList<Mat>(); for(int i = 0; i < hsv.channels(); i++) { Mat channel = new Mat(); channels.add(channel); } Core.split(hsv, channels); return channels.get(channelIdx); } }