Laplace variance gives different results between OpenCV java and OpenCV python

56 views Asked by At

i tried to calculate Laplace variance using opencv on java and python, but their results are different, here is my source code:

Mat src, src_gray = new Mat();
MatOfDouble dst = new MatOfDouble();
int kernel_size = 3, scale = 1, delta = 0, ddepth = CvType.CV_16S;
rc = Imgcodecs.imread("image.jpg", Imgcodecs.IMREAD_COLOR);
Imgproc.cvtColor(src, src_gray, Imgproc.COLOR_RGB2GRAY );
Imgproc.Laplacian(src_gray, dst, ddepth, kernel_size, scale, delta, Core.BORDER_DEFAULT);
MatOfDouble median = new MatOfDouble();
MatOfDouble std = new MatOfDouble();
Core.meanStdDev(dst, median,std);
double varianceLaplace = Math.pow(std.get(0,0)[0], 2);
double mean = Math.pow(median.get(0,0)[0], 2);
Toast.makeText(this, Core.getVersionString()+"\n"+mean+"\n"+varianceLaplace, Toast.LENGTH_SHORT).show();

Results in opencv java

Results in opencv java

import cv2
src = cv2.imread("image.jpg", cv2.IMREAD_COLOR)
src_gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
dst = cv2.Laplacian(src_gray, cv2.CV_16S, ksize=3, scale=1, delta=0)
(mean, std) = cv2.meanStdDev(dst)
print(std[0][0]**2, mean[0][0]**2)
print(cv2.__version__)

results in opencv python:
154.52608731077953
1.322542731132772e-07
4.7.0

which modification(s) must be done to get the same result?

i want an accurate input so the model can make the best prediction so i need help from everyone

0

There are 0 answers