001/* 002 * Copyright (C) Photon Vision. 003 * 004 * This program is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * This program is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU General Public License for more details. 013 * 014 * You should have received a copy of the GNU General Public License 015 * along with this program. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package org.photonvision.vision.pipe.impl; 019 020import org.opencv.core.Mat; 021import org.opencv.imgproc.Imgproc; 022import org.photonvision.vision.pipe.CVPipe; 023 024public class GrayscalePipe extends CVPipe<Mat, Mat, GrayscalePipe.GrayscaleParams> { 025 @Override 026 protected Mat process(Mat in) { 027 var outputMat = new Mat(); 028 // We can save a copy here by sending the output of cvtcolor to outputMat directly 029 // rather than copying. Free performance! 030 Imgproc.cvtColor(in, outputMat, Imgproc.COLOR_BGR2GRAY, 3); 031 032 return outputMat; 033 } 034 035 public static class GrayscaleParams { 036 public GrayscaleParams() {} 037 } 038}