1.视频图像类别

一级分类

二级分类

备注

黑屏

中心无文字

二级分类单选

中心有文字

中心无文字-灰色背景

中心有文字-灰色背景

花屏

黑底条线或点阵

二级分类单选

中心区域复杂纹理

全屏复杂纹理(雪花)

中心区域固定图信息

彩色背景-无文字

彩色背景-有文字

全屏规则条纹

扭曲

严重扭曲

非规则线条

滚屏

强噪音条带

横向亮度突变

图像亮度错位

遮挡

左侧遮挡

二级分类单选

右侧遮挡

上侧遮挡

下侧遮挡

左右两侧遮挡

三面遮挡

正常(画质欠佳)

色偏

二级分类复选

过暗

过明

过曝光

线干扰

色块干扰

马赛克

模糊

正常(画质清晰)

疑似提示(如轻微模糊)

同时多种提示

2. 参数设置

2.1 阈值及检测项设置

对正常显示,但画质欠佳的各检查项设置阈值。

阈值归一化为[0 1]区间,其中0表示敏感度最低, 也即只选出相似度较高的干扰项,1表示敏感度最高,即把可能存在的干扰项全部选出。

检测项设置用于强制检测非常规的干扰,包括字迹和横向移位两项。当用户需要或特定应用场景下会出现该类故障时,可选中这两项。

2.2 位置参数设置

不同的监控系统中,往往在图像上方或下方添加时间、位置、状态等文字属性信息,这类信息可能会对图像质量分析产生干扰。位置参数设置用于设置这类文字属性信息的位置,以相对于原始图像百分比的形式给出,使识别结果更稳定。

3. 库函数接口

3.1 接口简介

定义类CDigitVerify及接口函数voidCDigitVerify::ProcessMain(int* anResult,unsigned char* abyImageColor, int nHeight,int nWidth, float* afParas, float* afBounds),其中anResult为输出结果,abyImageColor为输入RGB图像数据, nHeight为输入图像高度, nWidth为输入图像长度, afParas为输入阈值, afBounds为输入上下边界。

3.2 例程

//读取图象

m_Image.Destroy();

HRESULT hResult = m_Image.Load(m_StrFileName);

if (hResult!=S_OK){ // 未成功读取

nResult[0]=0;

m_ListView.SetItemText(nItem, 3, "无法读取");

continue;

}

int nWidth= m_Image.GetWidth();    /// 长度

int nHeight= m_Image.GetHeight();  /// 高度

int nBitCount=m_Image.GetBPP();    /// 获取每象素的数据位数

int nRowByte =m_Image.GetPitch();  /// 相邻两行象素首地址间的间隔,可正可负

int nSize=nWidth*nHeight; // 单色宽度,为加速运算

if (nWidth*nHeight*3>nLength){ // 确保动态内存分配足够

nLength= nWidth*nHeight*3;

delete [] pabyImage;

pabyImage=new unsigned char[nLength];

}

if(nBitCount==8){ // 灰度图,(后续需考虑调色板)

unsigned char* pbyRealData=(unsigned char*)m_Image.GetBits(); // 首字节指针

k=0; //标志存入数组的索引

for (y=0; y

for (x=0; x

i=nRowByte*y+x;

pabyImage[k++]=*(pbyRealData+i); // R

pabyImage[k++]=*(pbyRealData+i); // G

pabyImage[k++]=*(pbyRealData+i); // B

}

}

else if(nBitCount==24){

unsigned char* pbyRealData=(unsigned char*)m_Image.GetBits();

k=0; //标志存入数组的索引

for (y=0; y

i=nRowByte*y;

memcpy(&(pabyImage[k]),pbyRealData+i,3*nWidth);

k=k+3*nWidth;

}

}

else if(nBitCount==32){

unsigned char* pbyRealData=(unsigned char*)m_Image.GetBits();

k=0; //标志存入数组的索引

for (y=0; y

for (x=0; x

i=nRowByte*y+x*4;

pabyImage[k++]=*(pbyRealData+i); // R

pabyImage[k++]=*(pbyRealData+i+1); // G

pabyImage[k++]=*(pbyRealData+i+2); // B

}

}

else if(nBitCount==16){

WORD* pbyRealData=(WORD*)m_Image.GetBits();

k=0; //标志存入数组的索引

for (y=0; y

for (x=0; x

i=(nRowByte*y+x*2)/2; //字节数,需换算为字数

pabyImage[k++]=((*(pbyRealData+i) & 0xF800)>>8) ; // R

pabyImage[k++]=((*(pbyRealData+i) & 0x07E0)>>3) ; // G

pabyImage[k++]=((*(pbyRealData+i) & 0x001F)<<3) ; // B

}

}

else{ // 不支持的图象格式

nResult[0]=0;

m_ListView.SetItemText(nItem, 3, "无法处理色阶");

continue;

}

// 检测算法

m_clImageVerify.ProcessMain(nResult, pabyImage,nHeight,nWidth, fParas,  fBounds));

// 保存结果

free [] pabyImage;

视频质量诊断软件简介相关推荐

  1. 视频质量诊断系统软件

    视频质量诊断系统软件  设备 视频质量诊断系统软件是一种智能化视频故障分析与预警系统,对视频图像出现的雪花.滚屏.模糊.偏色.画面冻结.增益失衡.云台失控.视频信号丢失等等多种摄像头故障.视频信号干扰 ...

  2. tensorflow之视频质量诊断

    参考 https://www.cnblogs.com/skyfsm/p/8051705.html *********************看了1个多月的资料,我准备开始进行尝试使用tensorflo ...

  3. 视频质量诊断视频质量分析

    一.随着平安城市.大安防的发展,监控摄像机数量的不断增加,给监控系统的维护工作带来了新的挑战.如何及时了解前端视频设备的运行情况,发现故障并检测恶意遮挡与破坏的不法行为已成为视频监控系统运行的首要迫切 ...

  4. 视频质量诊断-eXosip2 发送invite 请求视频

    视频质量诊断需要视频流,通过发送INVITE请求获取视频,需要在INVITE请求的消息体中包含相应的SDP信息.SDP(Session Description Protocol)是一种协议,用于描述多 ...

  5. 视频质量诊断分析 视频质量诊断依据 视频质量诊断判断标准

    一.概述 在图像信息技术被广泛应用的情况下,对图像质量的评估变成一个广泛而基本的问题.由于图像信息相对于其它信息有着无可比拟的优点,因此对图像信息进行合理处理成为各领域中不可或缺的手段.在图像的获取. ...

  6. 视频质量诊断----遮挡检测

    一.遮挡检测一般是摄像头被异物遮挡,呈现出整个场景或某一部分场景看不到的情况.被遮挡住的部分一般都呈偏黑色. 二.原理 把彩色图像二值化,偏黑的部分为前景,其他部分为背景. 对前景进行连通区域检测,求 ...

  7. 视频质量诊断和图像质量诊断 视频质量分析算法

    @[目前我们常说的视频质量诊断应用,主要分两种: 一种是将视频质量诊断系统设在监控中心,通过中心矩阵或流媒体服务器来获取前端所有摄像机的视频信号,通过轮巡方式对各路视频进行检测.这种方式受限于网络带宽 ...

  8. 视频质量诊断----雪花噪声检测

    一.雪花噪声即椒盐噪声,以前黑白电视常见的噪声现象. 二.原理 准备0°,45°,90°,135°4个方向的卷积模板. 用图像先和四个模板做卷积,用四个卷积绝对值最小值Min来检测噪声点. 求灰度图g ...

  9. 视频质量评价方法简介

    周鑫 2017年毕业于浙江大学,读研期间主要进行视频编码相关研究,目前在通信与视频部门进行转码引擎相关研发. 作者简介 ●●● 引言 视频质量评估(VQA)一直是个很活跃的研究领域,原因其一是业内一直 ...

最新文章

  1. 2018 ACM博士论文奖公布:伯克利博士获奖,清华姚班马腾宇荣誉提名(附论文链接)...
  2. JAVA四种基本排序总结
  3. 是隐极电机_资料 | 发电机定子绕组端部动态特性试验详解
  4. Oracle match_recognize
  5. 失去手臂五年后,这个仿生机械臂帮他重拾钢琴曲演奏
  6. 【图像去噪】基于matlab GUI DCT图像去噪【含Matlab源码 614期】
  7. 零基础计算机编程入门自学需要什么条件
  8. 【YOLOV5-5.x 源码讲解】整体项目文件导航
  9. Vue开发环境搭建,Vue.js安装,浏览器辅助工具Vue-devtools
  10. uint8_t、uint16_t、uint32_t、uint64_t
  11. 解决actionBar 闪现
  12. 跨考计算机要选择408吗,408难度比较大,对于跨考更是如此,应从以下三个方面做准备...
  13. 解决“网易邮箱提醒:一次被阻止的收信行为”
  14. oracle12c的特点,Oracle12c新特点详述
  15. 【HTML/CSS】HTML/CSS个人学习总结
  16. 旅游推荐系统python_Python 实现推荐系统
  17. 丘成桐科学奖计算机类,丘成桐科学奖
  18. 狼人杀服务器修改,微信小程序版狼人杀+服务端系列(1)
  19. 360浏览器,怎么开启无图片模式,在开热点的时候,省流量
  20. 30家最赚钱移动互联网公司出炉

热门文章

  1. 1020 月饼 ——C/C++实现
  2. 基于S-FFT的衍射计算
  3. 9.30黄金实时行情趋势分析、黄金原油价格涨跌分析及操作建议
  4. sql语句查询经纬度范围
  5. 长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的实践技术应用
  6. nasm纠正性训练指南pdf_力量训练前做这套静态拉伸,可以大大减轻健身后的肌肉酸痛...
  7. 已经刷新了四大公开数据集纪录?吃一记新ReID数据集安利!
  8. vue页面和html混合,html和vue混合开发
  9. 驱动调试神器printk你掌握了吗?
  10. kiwi syslog mysql_转一篇syslog简单搭建方法--kiwi syslog