Android OpenCV模糊工件

时间:2015-11-06 12:41:35

标签: android opencv

我在Nexus 9平板电脑上使用OpenCV 3.0.0在Android应用程序中模糊图像时遇到了一个有趣的神器。

这是输入图片: input image

这是我在使用OpenCV blur()模糊图像后得到的结果。请注意,白色/灰色墙上有颜色曲线。 blurred image with artifacts

我的代码基于OpenCV Camera Preview教程。

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mRgba = inputFrame.rgba();
    mGray = inputFrame.gray();

    Imgproc.blur(mRgba, mRgba, new org.opencv.core.Size(20,20));

    return mRgba;
}

当在应用程序调用的C ++库中模糊时,我得到了相同的效果。

奇怪的是,如果我将模糊图像保存为png,就像这样:

Mat bgr = new Mat(mRgba.size(), CvType.CV_8UC3);
Imgproc.cvtColor(mRgba, bgr, Imgproc.COLOR_RGBA2BGR);

Imgcodecs.imwrite("blurred.png", bgr);

那么工件就不存在了。另外在另一部手机(HTC HD2)上也没有任何文物。

我已将帧大小设置为640x480,因此模糊图像(由onCameraFrame返回)必须在类{{1}中的函数deliverAndDrawFrame中调整大小3倍当被绘制到画布上时。但是当我使用CameraBridgeViewBase从表面保存模糊输入的视频(like here时,因此绘制到屏幕上和视频中的位图是相同的),再次没有伪影。< / p>

所以我不知所措,颜色曲线的来源是什么,以及如何摆脱它们。你有什么建议吗?

感谢。

0 个答案:

没有答案