public Mat Shear(Mat imageSource, ShearFactor shearFactor) { if (imageSource == null) { return(null); } if ((shearFactor.x == 0) && (shearFactor.y == 0)) { return(imageSource); } List <Point2f> src = new List <Point2f>() { new Point2f(0.0f, 0.0f), new Point2f(0.0f, imageSource.Height), new Point2f(imageSource.Width, imageSource.Height) }; List <Point2f> dst = new List <Point2f>() { new Point2f(0.0f, 0.0f), new Point2f(shearFactor.y * imageSource.Height, imageSource.Height), new Point2f(imageSource.Width + shearFactor.y * imageSource.Height, shearFactor.x * imageSource.Width + imageSource.Height) }; Mat affineMatrix = Cv2.GetAffineTransform(src, dst); Mat translatedMatrix = new Mat(); Cv2.WarpAffine(imageSource, translatedMatrix, affineMatrix, new Size(imageSource.Width, imageSource.Height)); return(translatedMatrix); }
private void Initialize() { _brightness = 0; _contrast = 0; _meanBlur = 1; _gaussianBlur = new GaussianBlur(1, 1.0); _sharpening = 0; _medianFilterSize = 1; _bilateralFilter = new BilateralFilter(1, 1); _isSketchFilterOn = false; _isCartoonFilterOn = false; _translationFactor = new TranslationFactor(0, 0); _shearFactor = new ShearFactor(0, 0); _resizeFactor = new ResizeFactor(1, 1); }