android的OpenCV与windows的OpenCV结果不同
OpenCV for android different results with openCV for windows
我正在写一个android应用程序,它正在做图像处理-我在Android和PC上使用相同的jpg图像。我的代码由带有JNI访问的库代码组成,它接受Mat对象并返回RGB的平均值库中的代码
cv::Scalar Lum_Y, stDEV_Y, Lum_BGR, stDEV_BGR;
double Lum_Y_orig, stDEV_Y_orig, Slope_orig;
meanStdDev(ROIImage,Lum_Y,stDEV_Y);
Logger::getInstance()->log("Origin_Mean_R",Lum_Y.val[2]);
Logger::getInstance()->log("Origin_Mean_G",Lum_Y.val[1]);
Logger::getInstance()->log("Origin_Mean_B",Lum_Y.val[0]);
当我从我的PC上运行这个方法时,我得到的结果与Photoshop和ImageJ相对应。当我从安卓运行相同的确切代码的结果是不同的-多少?加- 1。这对我的算法至关重要。
我验证了两个图像都是作为BGR加载的,在Android部分我这样做:
Bitmap bim = BitmapFactory.decodeStream(imageStream);
Mat ImageMat = new Mat ( bim.getHeight(), bim.getWidth(), CvType.CV_8UC4, new Scalar(4));
Bitmap myBitmap32 = bim.copy(Bitmap.Config.ARGB_8888, true);
Utils.bitmapToMat(myBitmap32,ImageMat);
//ImageMat.convertTo(m, rtype);.
Mat mat2 = new Mat();
Imgproc.cvtColor(ImageMat, mat2, Imgproc.COLOR_RGBA2BGR);
我甚至尝试直接从android运行opencv mean calc,结果与从JNI运行完全相同。
有人能帮帮我吗?在我看来,这是一个很大的差异,源于截断。
Berak是正确的-谢谢。
当对PNG图像进行相同的分析时-参数准确。
再次感谢您
相关文章:
- Tensorflow对象检测在Python和C++(OpenCV)之间有不同的结果
- opencv c++ kmeans 和 matlab kmeans 的不同结果
- 在OpenCV中设置像素值(奇怪的结果)
- OpenCV 混合模式实现:为什么看似等效的操作会产生不同的结果?
- 自制bgr2hsv和opencv bgr2hsv之间的结果不同
- 使用 OpenCV 原始指针和 lambda 作为直方图的不同结果
- imshow() 在 C++ 年使用 OpenCV 3.2 产生了奇怪的结果
- OpenCV在Windows和Linux上有不同的结果
- 调整OpenCV Mat向量向量的大小时出乎意料的结果
- OPENCV解码灰色代码模式相机校准错误.如何格式化固有和外在结果
- 意外的摄像头校准结果与JPEG图像和EXIF方向上的OPENCV结果
- 划分 OpenCV 垫会产生意想不到的结果
- OpenCV SVM::p redict() 结果集总是给出相同的最后一个值
- 当我使用 opencv 函数 cvNorm(image,NULL,CV_L2)时,它会返回异常结果,为什么
- OpenCV级联分类器检测输入Mat边界外的MultiScale结果Rect
- 无法根据opencv旋转矩形教程获得相同的图像结果
- OpenCV 结果在调试/发布和其他机器之间更改
- 如何在opencv中从svmPredict()中获取分类结果
- 在opencv中findChessboardCorners()的结果不一致
- android的OpenCV与windows的OpenCV结果不同