对于图片模糊度检测,我们可以使用opencv技术。现在强大的《美图秀秀》也是利用了其技术。
下来,看看如何得出一张图片的模糊度。
1、导入opencv库,可手动也可cocoapods导入
2、利用opencv中的方法,先将图片转化为cv::Mat格式
3、利用opencv中算法,得出图片的方差,标准差,均值进行比较
4、利用得到的算法值,确定一个清晰值进行判别是否是清晰图片
5、上代码
- (void)tapAction{
//转换图片
cv::Mat changeImage = [self cvMatGrayFromImage:_imageView.image];
//判断图片的模糊度
burDetect(changeImage);
}
//将图片转化为 cv::Mat
- (cv::Mat)cvMatGrayFromImage:(UIImage *)image{
CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
CGFloat cols = image.size.width;
CGFloat rows = image.size.height;
cv::Mat cvMat(rows,cols,CV_8UC4);
CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, cols, rows, 8, cvMat.step[0], colorSpace, kCGImageAlphaNoneSkipLast | kCGBitmapByteOrderDefault);
CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), image.CGImage);
CGContextRelease(contextRef);
return cvMat;
}