python视频清晰度增强,python图像清晰化处理

  python视频清晰度增强,python图像清晰化处理

  通常一张图片是否清晰是一个感性认识。对于同一张图,你可能觉得还可以,别人会觉得不清楚,缺乏统一的标准。但是有一些算法可以量化图片的清晰度,这样就有章可循了。

  原则

  如果你之前了解过信号处理,就会知道最直接的方法就是计算图片的快速傅立叶变换,然后看高低频分布。如果一张图片有少量的高频成分,可以认为是模糊的。但是区分高频的具体阈值是非常困难的,阈值选择不当会导致效果不佳。

  我们期望的是单个浮点数就能代表画面的清晰程度。Pech-Pacheco在2000年的模式识别国际会议上提出,将一幅图片中的某个通道(通常是灰度值)通过一个平滑的刺猬掩模进行卷积,然后计算标准差,得到的值可以代表图片的清晰度。

  这种方法之所以行得通,是因为刺猬算子本身的光滑定义。它用于测量图像的二阶导数,突出图像中强度变化快的区域,这与Sobel和Scharr算子非常相似。和上述算子一样,平滑刺猬算子也常用于边缘检测。此外,该算法基于以下假设:如果一幅图像具有高方差,则它具有宽的频率响应范围,这代表正常和聚焦的图像。但如果一张图片的方差很小,那么它的频率响应范围就很窄,这意味着图片中的边数非常少。我们知道,一张照片越模糊,它的边缘就越少。

  有了代表锐度的值,剩下的工作就是设置相应的阈值。如果图片的方差低于预定阈值,则该图片可以被认为是模糊的。如果高于阈值,则不模糊。

  实际操作

  原理看起来很复杂,涉及很多信号和图像处理的知识。我们来实践一下,直观感受一下。

  因为人生短暂,而且我个人是朋友圈第一个Python玩家,所以选择用Python来实现。核心代码简单得可怕:

  导入cv2

  def getImageVar(imgPath):

  image=cv2 . im read(img path);

  img2gray=cv2.cvtColor(image,cv2。COLOR_BGR2GRAY)

  imageVar=cv2。拉普拉斯(img2gray,cv2。CV_64F)。风险值()

  返回图像变量

  复制代码

  人生真的很短暂。核心代码只有三行。简单解释一下。

  Import cv2使用知名的图像处理库OpenCV。关于OpenCV的安装,这里就不赘述了。需要注意的是,它依赖于numpy。

  Image=cv2.imread(imgPath)使用OpenCV提供的方法读取图片。2 img gray=cv2.cvtcolor (image,cv2.color _ bgr2gray)转换为灰度图像。如下图:

  原图是这样的:

  2.CVLaplacian (img2gray,cv2。CV_64F)用33平滑hedgehog算子对图片进行卷积,其中CV2.cv _ 64f是平滑hedgehog算子。

  原则上,平滑hedgehog算子经常用于边缘检测,所以在这里平滑hedgehog算子之后,所有检测到的边缘都留下了。完成这一步后,上图如下所示:

  你可以看到这里的图片人物大体清晰。

  2.cvlaplacian (img2gray,cv2.cv _ 64f)。var()计算方差并最终返回。

  按此计算,上图是3170多,这是我们用来判断清晰度的最终值。

  你可以再找一个:

  原图:

  做了灰度和平滑刺猬算子后,可以看到字符部分不是很清晰。

  最后算出来的方差只有530。

  剩下的工作就是根据整体画质来确定阈值。

  限制

  通过上面的实践,我们知道这个算法的诀窍就是设置一个合适的阈值。如果阈值太低,正常图像会被误断成模糊图像;如果阈值过高,模糊图像会被误判为正常图像。门槛取决于你的实际业务场景,需要根据不同的使用场景进行定制。

  真正的银子弹是不存在的。除了设置阈值,有些图片可能会故意模糊或模糊背景,容易被误杀。

  例如:

  计算是这样的,后面一大片都是黑的。

  这张图前景其实看起来还可以,但是背景有很大的模糊和虚化,更容易被误杀。

  所以了解原理后最好根据实际场景来使用。

  最后,编写一个简单的脚本来计算传入图像路径的图像,然后返回一个json字符串。

  用法python getrank.py-imgs=。/1.jpg,/2.jpg

  破碎的思想

  记录一些思想和想法,写科技和人文,写生活状态,写读书经历,主要是废话和感悟。欢迎关注和交流。

  微信:程序员的诗和远方

  微信官方账号ID: MonkeyCoder-Life

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: