比较两个相似图像的模糊度

时间:2019-03-07 12:03:27

标签: python-3.x opencv video-processing image-stitching

我正在开发一个原型应用程序,以创建用显微镜扫描的组织图(图像)。为此,我是:

  1. 在我用显微镜“探索”组织的同时录制视频
  2. 提取一些帧
  3. 缝合它们以获得全景图像。

从视频中提取帧的代码很简单,而且很容易解释:

import cv2
vidcap = cv2.VideoCapture('.\images\microscope2.avi')
success,image = vidcap.read()
count = 0
success = True
while success:
  success,image = vidcap.read()
  if (count / 20) * 20 == count:
      cv2.imwrite("./images/microscope/frame%d.jpg" % (count/20), image)
  if cv2.waitKey(10) == 27:
      break
  count += 1

您会注意到,我只是每20个帧提取一帧。我当前的问题是某些帧是模糊的,因此拼接算法无法检测特征以对齐和重叠图像。

一种解决方案可能是每20帧拍摄一次,例如3帧,找到模糊程度较低的帧,然后丢弃其他帧。

欢迎提出其他有关如何更改方法的想法(作为评论),请记住,我正在开发原型,所以我希望避免花太多时间编码解决方案。另外,它不需要实时运行。

问题:

是否存在一种聪明/简单的方法来比较非常相似的图像,以判断哪个图像模糊程度更低(或更多)?

1 个答案:

答案 0 :(得分:1)

图像的模糊度可以通过

进行估算
const
    data = [{ name: 'Rushabh', age: 22 }, { name: 'Bonny', age: 24 }],
    result = data.map(({ name }) => name); // get only name

console.log(result);

另请参阅这篇出色的帖子https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/,该帖子来自该建议。