iOS 中如何识别图片清晰度

本文欢迎转载,转载请注明出处:

https://my.oschina.net/227/blog/796485

 

前言

在开发项目中,有的时候需要用户上传照片到后台服务器审核,如果照片不清晰的话,那就得用户重新上传。有没有办法在上传之前就判断照片是否清晰呢?为了解决这个问题,我们可以用到一个图像处理框架“openCV”。"openCV"非常强大,我们这里只是用了它的很小一点点。

openCV官网:http://opencv.org/

 

思路:

如果读者了解信号处理,就会知道最直接的方法就是计算图片的快速傅里叶变换,然后查看高低频的分布。如果图片有少量的高频成分,那么该图片就可以被认为是模糊的。然而,区分高频量多少的具体阈值却是十分困难的,不恰当的阈值将会导致极差的结果。

查阅了相关资料,了解到了目前比较好的方法是“拉普拉斯方差算法”。

简单来说就是只需要将图片中的某一通道(一般用灰度值)用的拉普拉斯掩模做卷积运算,得到的像素矩阵,在把矩阵中的数值求方差。如果图像越清晰,边缘越锐利,像素之间的差别越大,则方差越大。反之图像模糊,边缘之间像素差别小,那方差越小。

 

步骤一:

去openCV官网下载给iOS用的“opencv2.framework”包,并导入xcode工程中

地址: (输入浏览器回车后过几秒钟就会自动下载)

https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/2.4.13/opencv2.framework.zip/download

             

 

步骤二:

在需要使用的地方添加头文件“#import <opencv2/opencv.hpp>”,并且把当前的“.m”的objective-c文件改成“.m

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值