视频雪花故障检测

2024-04-28 20:38
文章标签 视频 检测 故障 雪花

本文主要是介绍视频雪花故障检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

雪花噪声检测原理:雪花屏为大量无规则运动的噪点,在画面中“闪烁”。具有特性:纹理深,并且有规律可循,“闪烁点”像素灰度值剧烈变化,幅值波动较大。本博客从像素值入手,直接用数学的模型来检测视频中出现的雪花噪声。

检测思路:正常图像像素的灰度值变化一般都平缓,方差较小,而雪花的“闪烁点”像素灰度值剧烈变化,灰度值跳跃性大,计算方差也偏大。窗口领域也正是把图像细分,不漏过可能的异常像素点。所以检测雪花的思路是小窗口方差法。

计算步骤如下

1.将截取到的彩色视频帧图像作灰度化 处理;

2.将灰度图像的灰度级进行压缩,量化成16级,以减少系统的计算量;

3.从视频图像左上角开始位置将它分成3x3子块窗口,接着便计算该区域内9个像素点灰度值的方差;

4.窗口遍历大小为MXN的整幅图像,则得到(M-1)*(N-1)个方差值

5.对(M-1)*(N-1)个方差取均值T,与阈值Th比较;

6.若T>Th,则为“雪花屏”。

尝试代码:效果不是很理想,有待完善

// xuehuacheck.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include "cv.h"  
#include "highgui.h"  
#include "iostream"  
#include "math.h"  


using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * capture = cvCreateFileCapture("d:\\video\\djxzBrightness.avi");
IplImage * frame = NULL;
IplImage *frimg=NULL;//frimg灰度图
cvNamedWindow("video",1);
int count = 0;
while (true)
{
count++;
frame = cvQueryFrame(capture);
if (!frame)break;
//如果是第一帧,需要申请内存,并初始化
if (count == 1)
{
frimg = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U,1);
//转化为单通道图像再处理
cvCvtColor(frame, frimg, CV_BGR2GRAY);

}
else
{
cvCvtColor(frame,frimg,CV_BGR2GRAY);

}
int width = frimg->width;//图片宽度
int height = frimg->height;//图片高度
int step = frimg->widthStep;
unsigned char *data = (uchar*)frimg->imageData;
double aver = 0;
double var = 0;
for (int  i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
aver += data[i*step + j];
}
}
aver = aver / height / width;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width;j++)
{
var += pow(data[i*step+j],2);
}
}
var = var / height / width;
var = var - (aver*aver);
var = sqrt(var);

cout << var << endl;
cvShowImage("video",frimg);


if (!(count%50))
{
printf("f:%d\n",count);
//***suanfa;
}
if (cvWaitKey(10) == 27) break;

}
cvReleaseCapture(&capture);
cvDestroyWindow("video");
return 0;
}


这篇关于视频雪花故障检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944205

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放