检测出图片的模糊度

本文介绍了如何利用OpenCV库来检测图片的模糊度,通过转化图片为cv::Mat格式,计算方差、标准差和均值,然后设置阈值判断图片是否清晰。这种方法在《美图秀秀》等应用中也有应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于图片模糊度检测,我们可以使用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;
}


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值