public static void NormalizeRGB(this Mat self, Mat output, double clip) { if (self.Channel != 3) { throw new NotSupportedException("Channel sould be RGB"); } ConvertColor(self, ColorConversionCodes.BGR2Lab); Mat[] spl = Split(self); CLAHE c = CLAHE.Create(clip, new OpenCvSharp.Size(8, 8)); c.Apply(spl[0], spl[0]); Merge(self, spl); ConvertColor(self, ColorConversionCodes.Lab2BGR); }
public void cuda_CLAHE() { Mat src = Image("lenna.png", ImreadModes.Grayscale); Size size = src.Size(); Cuda.CLAHE clahe = Cuda.CLAHE.create(20.0); CLAHE clahe_gold = CLAHE.Create(20.0); using (GpuMat g_src = new GpuMat(size, src.Type())) using (GpuMat dst = new GpuMat()) { g_src.Upload(src); clahe.Apply(g_src, dst); Mat dst_gold = new Mat(); clahe_gold.Apply(src, dst_gold); ImageEquals(dst_gold, dst, 1.0); ShowImagesWhenDebugMode(src, dst); } }