Java和OpenCV:计算MAT的中位数/平均值/ Stdev值(灰度图像)

tim*_*tim 5 java opencv image-processing mat

我有一个图像作为灰度图像使用

Mat m = Highgui.imread(path, Highgui.CV_LOAD_IMAGE_GRAYSCALE);
Run Code Online (Sandbox Code Playgroud)

在Java中,现在我想计算中值,平均值和标准差.我是新手,我根本不知道如何找出计算和东西......尝试了2个小时的googeling,请给我一些关于如何对此进行研究的基本建议.我尝试过像"mean value java opencv"这样的关键字,发现了这个:

http://docs.opencv.org/java/2.4.2/org/opencv/core/Core.html#meanStdDev

我现在这样做:

MatOfDouble mu = new MatOfDouble();
MatOfDouble sigma = new MatOfDouble();
Core.meanStdDev(m, mu, sigma);
Run Code Online (Sandbox Code Playgroud)

但是如何才能将均值/ stdev值作为双重访问?尝试过像

double d = mu.get(0,0)
Run Code Online (Sandbox Code Playgroud)

但是有些不对劲.不幸的是,我不能通过阅读OpenCV Java文档找到它,因为我不知道该找什么/ at.

我需要mean/stdev来计算canny过滤器的阈值...至今提前感谢

Che*_*wxy 8

试试这个:

double d = mu.get(0,0)[0]
Run Code Online (Sandbox Code Playgroud)

mu.get(0,0)返回一个double[],所以你可以得到第一个元素 - 它相当于C++版本:

mu.val[0]
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.