【问题标题】:What features do glitched images have that I could detect?故障图像有哪些我可以检测到的特征?
【发布时间】:2021-06-04 06:58:43
【问题描述】:

我正在尝试构建一个只将“好”帧发送到数据库的素材过滤器。

这是我目前的评分功能:

def rateImg(img):
    try:
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    except:
        gray = img
    edges = cv2.Canny(gray, 0, 255)
    countours, _ = cv2.findContours(
        edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
    num_of_countours = len(countours)
    lap = cv2.Laplacian(gray, cv2.CV_64F).var()
    lap = round(lap, 2)
    return [lap, num_of_countours]

首先,我使用拉普拉斯方差来计算来自特定时间窗口的图像的清晰度。

从技术上讲,它应该为我提供一个“好的”框架,但情况并非总是如此。

我必须使用的相机不是很好,有时会像this 一样出现故障,并且像这样的帧具有最高的拉普拉斯方差。

因此,我目前的解决方案是计算图像中的计数数量,如果图像超过特定阈值,我将其归类为“故障”。但是使用这种方法,算法将包含大量对象的图像评为“故障”。

另外,我也尝试过detecting squares and rectangles,但事实证明,这种方法的效果远不如 countour 方法。

有什么方法可以检测图像中的明显故障吗? 我觉得应该有,因为作为一个人类,我一眼就能轻松地对故障图像和正常图像进行分类。我似乎无法指出究竟是什么让它们与众不同。

【问题讨论】:

  • 当您查看图像时,您不会检测到“故障”,您会识别场景和其中的对象,并注意到您无法识别的东西就像你知道的一样。为了让我们回答您的问题,您必须向我们展示更多这些“故障”的示例,以便我们确定它们的共同点。通过一个示例,您将获得如何识别一个示例的想法,而这些想法可能不适用于其他示例。

标签: python python-3.x opencv image-processing cv2


【解决方案1】:

有什么方法可以检测图像中的明显毛刺?

是的,但可能不适用于复杂的随机故障,请查看here

这不是重复的,但在这种情况下,您可以检测是否存在包含相同 RGB 值的水平区域。 (您还可以检测是否有大面积的图像包含相同的颜色。从相机拍摄的照片虽然看起来相似,但永远不会包含相同的 RGB 值,计算机生成的图像是一个例外)

作为人类,我可以轻松地将故障图像和正常图像分类为 一目了然。

事实上,您无法识别有故障的图像。您尝试识别其中的对象。当你看到你不认识的“奇怪”的东西时,你会认为它是一个有故障的图像。除非您对其进行训练,否则机器无法做到这一点。

有什么方法可以检测图像中的明显故障

我不认为一个人可以编写一个可以实现它的程序。

.

究竟是什么让它们与众不同。

您和机器看待世界的方式。你的大脑直接接收到一张清晰的照片,你必须“训练”很多才能找到一张照片是否正常

试着观察这个电脑能看到的“图像”

73 64 67 68 64 66 6e 67
73 6e 68 72 67 74 72 79
75 79 65 75 79 65 75 74
6d 6e 79 6d 65 74 75 79
65 6d 6a 74 75 6b 69 20
79 66 74 79 2c 6f 75 69
74 2c 6f 69 79 74 79 2c

我不是 ML 的工程师,但我可以肯定地告诉你是的,我相信你甚至不会尝试这样做。

我认为不仅仅是评论,但它并不能真正回答您的问题。由于我是 StackOverFlow 的新手,因此无法添加评论,因此我会将其发布为答案。

【讨论】:

    猜你喜欢
    • 2012-12-16
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多