首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python识别视频黑屏或者低清晰度

python识别视频黑屏或者低清晰度

作者头像
小小咸鱼YwY
发布2020-10-27 17:30:29
发布2020-10-27 17:30:29
2K00
代码可运行
举报
文章被收录于专栏:python-爬虫python-爬虫
运行总次数:0
代码可运行

第一步:获取视频第一帧图片

https://cloud.tencent.com/developer/article/1711641

第二步:进行识别

代码语言:javascript
代码运行次数:0
运行
复制
import os
import numpy as np
import cv2 as cv
from skimage import filters, io


class DetectException(Exception):
    pass


class DetectionUtil:

    DARK_THRES_PIXEL = 20
    DARK_THRES_PERCENT = 0.90
    QUALITY_THRES = 30


    def unqualified_detection(self, image_path):
        """black screen or low quality."""
        # image = cv.imread(image_path)
        try:
            image = io.imread(image_path)
        except Exception as e:
            raise DetectException(e)
        image = image[:, :, ::-1]
        gray_image = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
        row, col = gray_image.shape[:2]
        pixel_count = row*col

        dark_condition = (gray_image <self.DARK_THRES_PIXEL)
        dark_array = gray_image[dark_condition]
        if dark_array.size / pixel_count >= self.DARK_THRES_PERCENT:
            return True
        quality = self.genengrad_detection(image)
        if quality < self.QUALITY_THRES:
            return True
        return False

    def _preprocess_image(self, image):
        re_img = cv.resize(image, (800, 900), interpolation=cv.INTER_CUBIC)
        gray_image = cv.cvtColor(re_img, cv.COLOR_BGR2GRAY)
        image_matrix = np.matrix(gray_image)
        return image_matrix

    def genengrad_detection(self, image):
        matrix =self._preprocess_image(image)
        return np.sqrt(np.sum(filters.sobel(matrix)**2))


if __name__ == "__main__":
    print(DetectionUtil().unqualified_detection(r"视频封面地址"))
    #true为黑屏或者低分辨率
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:获取视频第一帧图片
  • 第二步:进行识别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档