效果
实现方式较为简单,拍照后点击按钮进行检测,下方文本框显示检查结果
实现
基于openCV for Android 3.2版本的SDK,主要方法是将图像进行灰度化,再利用拉普拉斯算子进行3层的计算,之后是均值和方差计算。越清晰的图片,方差越大。因此,选定方差的标准,就可以判定图片是清晰还是模糊了。
由于Laplacian算子已经在OpenCV中被良好封装,因此无论是使用python,Java和C++ 都可以很好地完成这一工作。而由于使用java的SDK需要安装独立的openCV 管理器,因此我选择了C++的实现方法。并且将C++库直接导入Android工程中。
由于核心算法方面都是参考各位大牛的实现所得,这里就不放代码了,献上参考链接:
c++版的调用实现: http://blog.csdn.net/qq_34784753/article/details/72901616
python版的解释与实现 https://www.google.com/search?q=Laplacian+c%2B%2B+%E6%A8%A1%E7%B3%8A%E6%A3%80%E6%B5%8B&oq=Laplacian&aqs=chrome.3.69i57j69i61j69i60j69i59l2j69i60.11904j0j4&sourceid=chrome&ie=UTF-8