Example usage for org.opencv.core Core divide

List of usage examples for org.opencv.core Core divide

Introduction

In this page you can find the example usage for org.opencv.core Core divide.

Prototype

public static void divide(double scale, Mat src2, Mat dst) 

Source Link

Usage

From source file:Questao1.java

void divisao() {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Core.divide(image1, image2, output);
    Imgcodecs.imwrite("divisao.jpg", output);
    showResult("divisao.jpg");
}

From source file:ch.zhaw.facerecognitionlibrary.PreProcessor.BrightnessCorrection.GammaCorrection.java

License:Open Source License

public PreProcessor preprocessImage(PreProcessor preProcessor) {
    List<Mat> images = preProcessor.getImages();
    List<Mat> processed = new ArrayList<Mat>();
    for (Mat img : images) {
        img.convertTo(img, CvType.CV_32F);
        Core.divide(img, INT_MAX, img);
        Core.pow(img, gamma, img);//ww  w .  j a  v  a2s. com
        Core.multiply(img, INT_MAX, img);
        img.convertTo(img, CvType.CV_8U);
        processed.add(img);
    }
    preProcessor.setImages(processed);
    return preProcessor;
}

From source file:ch.zhaw.facerecognitionlibrary.PreProcessor.PreProcessor.java

License:Open Source License

public void normalize01(Mat norm) {
    Core.normalize(norm, norm, 0.0, 1.0, Core.NORM_MINMAX, CvType.CV_64FC1);
    Core.MinMaxLocResult minmax = Core.minMaxLoc(norm);
    Scalar min = new Scalar(minmax.minVal);
    Core.subtract(norm, min, norm);/*from   ww w  . j ava 2s. c o m*/
    minmax = Core.minMaxLoc(norm);
    Scalar max = new Scalar(minmax.maxVal);
    Core.divide(norm, max, norm);
}

From source file:com.shootoff.camera.Camera.java

License:Open Source License

public static Mat colorTransfer(Mat source, Mat target) {
    Mat src = new Mat();
    Mat dst = new Mat();

    Imgproc.cvtColor(source, src, Imgproc.COLOR_BGR2Lab);
    Imgproc.cvtColor(target, dst, Imgproc.COLOR_BGR2Lab);

    ArrayList<Mat> src_channels = new ArrayList<Mat>();
    ArrayList<Mat> dst_channels = new ArrayList<Mat>();
    Core.split(src, src_channels);/*from w w  w.j  a  v a2s .  com*/
    Core.split(dst, dst_channels);

    for (int i = 0; i < 3; i++) {
        MatOfDouble src_mean = new MatOfDouble(), src_std = new MatOfDouble();
        MatOfDouble dst_mean = new MatOfDouble(), dst_std = new MatOfDouble();
        Core.meanStdDev(src_channels.get(i), src_mean, src_std);
        Core.meanStdDev(dst_channels.get(i), dst_mean, dst_std);

        dst_channels.get(i).convertTo(dst_channels.get(i), CvType.CV_64FC1);
        Core.subtract(dst_channels.get(i), dst_mean, dst_channels.get(i));
        Core.divide(dst_std, src_std, dst_std);
        Core.multiply(dst_channels.get(i), dst_std, dst_channels.get(i));
        Core.add(dst_channels.get(i), src_mean, dst_channels.get(i));
        dst_channels.get(i).convertTo(dst_channels.get(i), CvType.CV_8UC1);
    }

    Core.merge(dst_channels, dst);

    Imgproc.cvtColor(dst, dst, Imgproc.COLOR_Lab2BGR);

    return dst;
}

From source file:com.wallerlab.compcellscope.calcDPCTask.java

License:BSD License

protected Long doInBackground(Mat... matrix_list) {
    //int count = urls.length;
    Mat in1 = matrix_list[0];/*from   w w w  . ja  va 2s . c om*/
    Mat in2 = matrix_list[1];
    Mat outputMat = matrix_list[2];

    Mat Mat1 = new Mat(in1.width(), in1.height(), in1.type());
    Mat Mat2 = new Mat(in2.width(), in2.height(), in2.type());
    in1.copyTo(Mat1);
    in2.copyTo(Mat2);

    Imgproc.cvtColor(Mat1, Mat1, Imgproc.COLOR_RGBA2GRAY, 1);
    Imgproc.cvtColor(Mat2, Mat2, Imgproc.COLOR_RGBA2GRAY, 1);

    Mat output = new Mat(Mat1.width(), Mat1.height(), CvType.CV_8UC4);
    Mat dpcSum = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);
    Mat dpcDifference = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);
    Mat dpcImgF = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);

    /*
    Log.d(TAG,String.format("Mat1 format is %.1f-%.1f, type: %d",Mat1.size().width,Mat1.size().height,Mat1.type()));
    Log.d(TAG,String.format("Mat2 format is %.1f-%.1f, type: %d",Mat2.size().width,Mat2.size().height,Mat2.type()));
    */

    // Convert to Floats
    Mat1.convertTo(Mat1, CvType.CV_32FC1);
    Mat2.convertTo(Mat2, CvType.CV_32FC1);
    Core.add(Mat1, Mat2, dpcSum);
    Core.subtract(Mat1, Mat2, dpcDifference);
    Core.divide(dpcDifference, dpcSum, dpcImgF);
    Core.add(dpcImgF, new Scalar(1.0), dpcImgF); // Normalize to 0-2.0
    Core.multiply(dpcImgF, new Scalar(110), dpcImgF); // Normalize to 0-255
    dpcImgF.convertTo(output, CvType.CV_8UC1); // Convert back into RGB
    Imgproc.cvtColor(output, output, Imgproc.COLOR_GRAY2RGBA, 4);

    dpcSum.release();
    dpcDifference.release();
    dpcImgF.release();
    Mat1.release();
    Mat2.release();

    Mat maskedImg = Mat.zeros(output.rows(), output.cols(), CvType.CV_8UC4);
    int radius = maskedImg.width() / 2 + 25;
    Core.circle(maskedImg, new Point(maskedImg.width() / 2, maskedImg.height() / 2), radius,
            new Scalar(255, 255, 255), -1, 8, 0);
    output.copyTo(outputMat, maskedImg);
    output.release();
    maskedImg.release();
    return null;
}

From source file:com.wallerlab.compcellscope.MultiModeViewActivity.java

License:BSD License

public Mat calcDPC(Mat in1, Mat in2, Mat out) {
    Mat Mat1 = new Mat(in1.width(), in1.height(), in1.type());
    Mat Mat2 = new Mat(in2.width(), in2.height(), in2.type());
    in1.copyTo(Mat1);//from   ww  w  .j  a v a 2  s. c om
    in2.copyTo(Mat2);

    Imgproc.cvtColor(Mat1, Mat1, Imgproc.COLOR_RGBA2GRAY, 1);
    Imgproc.cvtColor(Mat2, Mat2, Imgproc.COLOR_RGBA2GRAY, 1);

    Mat output = new Mat(Mat1.width(), Mat1.height(), CvType.CV_8UC4);
    Mat dpcSum = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);
    Mat dpcDifference = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);
    Mat dpcImgF = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1);

    /*
    Log.d(TAG,String.format("Mat1 format is %.1f-%.1f, type: %d",Mat1.size().width,Mat1.size().height,Mat1.type()));
    Log.d(TAG,String.format("Mat2 format is %.1f-%.1f, type: %d",Mat2.size().width,Mat2.size().height,Mat2.type()));
    */

    // Convert to Floats
    Mat1.convertTo(Mat1, CvType.CV_32FC1);
    Mat2.convertTo(Mat2, CvType.CV_32FC1);
    Core.add(Mat1, Mat2, dpcSum);
    Core.subtract(Mat1, Mat2, dpcDifference);
    Core.divide(dpcDifference, dpcSum, dpcImgF);
    Core.add(dpcImgF, new Scalar(1.0), dpcImgF); // Normalize to 0-2.0
    Core.multiply(dpcImgF, new Scalar(110), dpcImgF); // Normalize to 0-255
    dpcImgF.convertTo(output, CvType.CV_8UC1); // Convert back into RGB
    Imgproc.cvtColor(output, output, Imgproc.COLOR_GRAY2RGBA, 4);

    dpcSum.release();
    dpcDifference.release();
    dpcImgF.release();
    Mat1.release();
    Mat2.release();

    Mat maskedImg = Mat.zeros(output.rows(), output.cols(), CvType.CV_8UC4);
    int radius = maskedImg.width() / 2 + 25;
    Core.circle(maskedImg, new Point(maskedImg.width() / 2, maskedImg.height() / 2), radius,
            new Scalar(255, 255, 255), -1, 8, 0);
    output.copyTo(out, maskedImg);
    output.release();
    maskedImg.release();
    return out;
}

From source file:ctPrincipal.Operacoes.java

String realizarOperacoes(int op) {
    String resultImgOutput = "";
    switch (op) {
    case 1://and
        imagemBinaria();//from   www.  java2s . c om
        Core.bitwise_and(image1bin, image2bin, output);
        normalizarBinario();
        Imgcodecs.imwrite("OutputImg/and.jpg", output);
        resultImgOutput = "OutputImg/and.jpg";
        break;
    case 2://or
        imagemBinaria();
        Core.bitwise_or(image1bin, image2bin, output);
        normalizarBinario();
        Imgcodecs.imwrite("OutputImg/or.jpg", output);
        resultImgOutput = "OutputImg/or.jpg";
        break;
    case 3://xor
        imagemBinaria();
        Core.bitwise_xor(image1bin, image2bin, output);
        normalizarBinario();
        Imgcodecs.imwrite("OutputImg/xor.jpg", output);
        resultImgOutput = "OutputImg/xor.jpg";
        break;
    case 4://not
        Core.bitwise_not(image1bin, output);
        Imgcodecs.imwrite("OutputImg/not.jpg", output);
        resultImgOutput = "OutputImg/not.jpg";
        break;
    case 5://soma
        Core.add(image1, image2, output);
        Imgcodecs.imwrite("OutputImg/soma.jpg", output);
        resultImgOutput = "OutputImg/soma.jpg";
        break;
    case 6://subtracao
        Core.subtract(image1, image2, output);
        Imgcodecs.imwrite("OutputImg/subtracao.jpg", output);
        resultImgOutput = "OutputImg/subtracao.jpg";
        break;
    case 7:// multiplicacao
        Core.multiply(image1, image2, output);
        Imgcodecs.imwrite("OutputImg/multiplicacao.jpg", output);
        resultImgOutput = "OutputImg/multiplicacao.jpg";
        break;
    case 8://divisao
        Core.divide(image1, image2, output);
        Imgcodecs.imwrite("OutputImg/divisao.jpg", output);
        resultImgOutput = "OutputImg/divisao.jpg";
        break;
    }

    return resultImgOutput;
}

From source file:cx.uni.jk.mms.iaip.tools.SimpleBrushTool.java

License:Open Source License

/**
 * @param brush// www  .j a v  a 2  s .  c  o m
 * @param inverseEffect
 * @param workMat
 */
private void applyToWorkMat(BrushModel brush, boolean inverseEffect, Mat workMat) {
    switch (brush.getMode()) {
    case SET: {
        if (!inverseEffect) {
            /** set */
            Core.add(workMat.mul(brush.getOneMinusAlphaMat()), brush.getMultipliedMat(), workMat);
        } else {
            /** clear */
            Core.multiply(workMat, brush.getOneMinusAlphaMat(), workMat);
        }
    }
        break;
    case ADD: {
        if (!inverseEffect) {
            /** add */
            Core.add(workMat, brush.getMultipliedMat(), workMat);
        } else {
            /** subtract */
            Core.subtract(workMat, brush.getMultipliedMat(), workMat);
        }
    }
        break;
    case MULTIPLY: {
        if (!inverseEffect) {
            /** multiply */
            Core.add(workMat.mul(brush.getOneMinusAlphaMat()), workMat.mul(brush.getMultipliedMat(), 0.01d),
                    workMat);
        } else {
            /** multiply by 1/alpha. trick: divide twice ;) */
            Core.divide(1.0d, workMat, workMat);
            Core.add(workMat.mul(brush.getOneMinusAlphaMat()), workMat.mul(brush.getMultipliedMat(), 0.01d),
                    workMat);
            Core.divide(1.0d, workMat, workMat);
        }
    }
        break;
    default:
        /** do nothing */
    }
}