【发布时间】:2015-07-08 11:13:10
【问题描述】:
为了减少图像中的噪点,我尝试获取 10 张图像的平均值。
Mat imgMain = new Mat(n_height, n_width, CvType.CV_32FC4);
Mat imgFin = new Mat(n_height, n_width, CvType.CV_32FC4);
for(int i=1; i <= 10; i++) {
//Crop the image
image.recycle();
image = null;
image = BitmapFactory.decodeFile("/storage/sdcard0/DCIM/A" + String.valueOf(i) + ".jpg");
pimage = Bitmap.createBitmap(image, leftOff1, topOff1, n_width, n_height);
Utils.bitmapToMat(pimage, imgMain);
scaleAdd(imgMain, 0.1, imgFin, imgFin);
}
运行应用程序,我得到以下消息:
原因:CvException [org.opencv.core.CvException: cv::Exception: /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/core/src/matmul.cpp:2079: 错误:(-215) src1.type() == src2.type() 在函数 void cv::scaleAdd(cv::InputArray, double, cv::InputArray, cv::OutputArray) ] 在 org.opencv.core.Core.scaleAdd_0(本机方法) 在 org.opencv.core.Core.scaleAdd(Core.java:6690) 在 MainActivity.imageAnalysis(MainActivity.java:123)
第 123 行是scaleAdd(imgMaing, 0.1, imgFin, imgFin);
根据reference,src1、src2 和 dst MAT 应具有相同的大小和类型。但是,当我将 imgFin 类型设置为 32FC4 时出现此错误,但当 imgFin 设置为 8UC4 时没有出现任何错误。有没有这样的经历?我需要在 imgFin 中保留浮点数,这就是我不能使用 8UC4 的原因。
【问题讨论】:
标签: java android opencv image-processing