python识别视频黑屏或者低清晰度
时间:2022-07-28
本文章向大家介绍python识别视频黑屏或者低清晰度,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第一步:获取视频第一帧图片
https://www.cnblogs.com/pythonywy/p/13749735.html
第二步:进行识别
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为黑屏或者低分辨率
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python入门012~使用python3爬取网络图片并保存到本地
- java入门015~springboot2整合mybatis,轻松实现mysql数据的增删改查
- 详解Android activity与fragment之间的通信交互
- Android App内监听截图加二维码功能代码
- 微信小程序登录与注册验证码倒计时的效果实现
- Android仿微信朋友圈全文、收起功能的实例代码
- TextView实现图文混合编排的方法
- 小程序云函数调用http或https请求外部数据
- 详解Android中图片的三级缓存及实例
- 借助云开发实现小程序的登陆注册功能
- TextView显示文本控件两种方法 TextView显示link的方法
- Java入门005~Springboot2.2.4引入freemarker模板
- TabLayout使用方法详解
- Java入门006~springboot+freemarker+bootstrap快速实现管理后台
- Java入门007~springboot+freemarker+bootstrap快速实现分页功能