当前位置:首页 » 操作系统 » ncc匹配算法

ncc匹配算法

发布时间: 2022-04-12 18:47:41

❶ 使用OpenCV进行模板匹配(原图-模板图)

匹配算法有很多,比如最简单的对比原图和模板图的像素值。
但是这种方法稍微有一点旋转和光照变化结果就会很差。

为了改进这个,有了SAD算法。
然后SAD相似的SSD。
再然后是计算区域互相关性的NCC算法。
以上三种算法中,SAD算法最简单,因此当模板大小确定后,SAD算法的速度最快。NCC算法与SAD算法相比要复杂得多。

至于算法的过程,这三个算法都是很好理解的算法,我觉得还是自学比较好。

❷ 如何使用opencv中的NCC算法实现两幅图像的相似性判断

图像相似度计算之哈希值方法OpenCV实现

分类: OpenCV Image Processing 2014-12-25 21:27 180人阅读 评论(0) 收藏 举报
感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字符串,然后比较不同图像的指纹。结果越接近,就说明图像越相似。
实现步骤:
1. 缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素。这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异;
2. 简化色彩:将缩小后的图像,转为64级灰度,即所有像素点总共只有64种颜色;
3. 计算平均值:计算所有64个像素的灰度平均值;
4. 比较像素的灰度:将每个像素的灰度,与平均值进行比较,大于或等于平均值记为1,小于平均值记为0;
5. 计算哈希值:将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图像的指纹。组合的次序并不重要,只要保证所有图像都采用同样次序就行了;
6. 得到指纹以后,就可以对比不同的图像,看看64位中有多少位是不一样的。在理论上,这等同于”汉明距离”(Hamming distance,在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数)。如果不相同的数据位数不超过5,就说明两张图像很相似;如果大于10,就说明这是两张不同的图像。
以上内容摘自:http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html

下面是用OpenCV实现的测试代码:
[cpp] view plainprint?
string strSrcImageName = "src.jpg";

cv::Mat matSrc, matSrc1, matSrc2;

matSrc = cv::imread(strSrcImageName, CV_LOAD_IMAGE_COLOR);
CV_Assert(matSrc.channels() == 3);

cv::resize(matSrc, matSrc1, cv::Size(357, 419), 0, 0, cv::INTER_NEAREST);
//cv::flip(matSrc1, matSrc1, 1);
cv::resize(matSrc, matSrc2, cv::Size(2177, 3233), 0, 0, cv::INTER_LANCZOS4);

cv::Mat matDst1, matDst2;

cv::resize(matSrc1, matDst1, cv::Size(8, 8), 0, 0, cv::INTER_CUBIC);
cv::resize(matSrc2, matDst2, cv::Size(8, 8), 0, 0, cv::INTER_CUBIC);

cv::cvtColor(matDst1, matDst1, CV_BGR2GRAY);
cv::cvtColor(matDst2, matDst2, CV_BGR2GRAY);

int iAvg1 = 0, iAvg2 = 0;
int arr1[64], arr2[64];

for (int i = 0; i < 8; i++) {
uchar* data1 = matDst1.ptr<uchar>(i);
uchar* data2 = matDst2.ptr<uchar>(i);

int tmp = i * 8;

for (int j = 0; j < 8; j++) {
int tmp1 = tmp + j;

arr1[tmp1] = data1[j] / 4 * 4;
arr2[tmp1] = data2[j] / 4 * 4;

iAvg1 += arr1[tmp1];
iAvg2 += arr2[tmp1];
}
}

iAvg1 /= 64;
iAvg2 /= 64;

for (int i = 0; i < 64; i++) {
arr1[i] = (arr1[i] >= iAvg1) ? 1 : 0;
arr2[i] = (arr2[i] >= iAvg2) ? 1 : 0;
}

int iDiffNum = 0;

for (int i = 0; i < 64; i++)
if (arr1[i] != arr2[i])
++iDiffNum;

cout<<"iDiffNum = "<<iDiffNum<<endl;

if (iDiffNum <= 5)
cout<<"two images are very similar!"<<endl;
else if (iDiffNum > 10)
cout<<"they are two different images!"<<endl;
else
cout<<"two image are somewhat similar!"<<endl;
string strSrcImageName = "src.jpg";

cv::Mat matSrc, matSrc1, matSrc2;

matSrc = cv::imread(strSrcImageName, CV_LOAD_IMAGE_COLOR);
CV_Assert(matSrc.channels() == 3);

cv::resize(matSrc, matSrc1, cv::Size(357, 419), 0, 0, cv::INTER_NEAREST);
//cv::flip(matSrc1, matSrc1, 1);
cv::resize(matSrc, matSrc2, cv::Size(2177, 3233), 0, 0, cv::INTER_LANCZOS4);

cv::Mat matDst1, matDst2;

cv::resize(matSrc1, matDst1, cv::Size(8, 8), 0, 0, cv::INTER_CUBIC);
cv::resize(matSrc2, matDst2, cv::Size(8, 8), 0, 0, cv::INTER_CUBIC);

cv::cvtColor(matDst1, matDst1, CV_BGR2GRAY);
cv::cvtColor(matDst2, matDst2, CV_BGR2GRAY);

int iAvg1 = 0, iAvg2 = 0;
int arr1[64], arr2[64];

for (int i = 0; i < 8; i++) {
uchar* data1 = matDst1.ptr<uchar>(i);
uchar* data2 = matDst2.ptr<uchar>(i);

int tmp = i * 8;

for (int j = 0; j < 8; j++) {
int tmp1 = tmp + j;

arr1[tmp1] = data1[j] / 4 * 4;
arr2[tmp1] = data2[j] / 4 * 4;

iAvg1 += arr1[tmp1];
iAvg2 += arr2[tmp1];
}
}

iAvg1 /= 64;
iAvg2 /= 64;

for (int i = 0; i < 64; i++) {
arr1[i] = (arr1[i] >= iAvg1) ? 1 : 0;
arr2[i] = (arr2[i] >= iAvg2) ? 1 : 0;
}

int iDiffNum = 0;

for (int i = 0; i < 64; i++)
if (arr1[i] != arr2[i])
++iDiffNum;

cout<<"iDiffNum = "<<iDiffNum<<endl;

if (iDiffNum <= 5)
cout<<"two images are very similar!"<<endl;
else if (iDiffNum > 10)
cout<<"they are two different images!"<<endl;
else
cout<<"two image are somewhat similar!"<<endl;

❸ 如何使用opencv中的NCC算法实现两幅图像的相似性判断

传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。

❹ 请问下列perl的正则表达式是什么意思一 s/BCC\,NCC\:(\d+)\...

1.将
"BCC,NCC:整数\整数"
全局替换成
"BCC:整数/NCC:整数"
2.匹配以.*Cell:开头或者以逗号开头或者以
.*BTS:
开头
或者以一个或多个逗号开头.*结尾
3.将
"
/
"
全局替换成
"
$
"
4.匹配任何的
字符串+“
:.*

结尾
5.匹配
dddd-dd-dd
00000
dd:dd
比如:
1234-12-12
00000000
12:32
[
0的个数不确定,可为多个或一个]

❺ opencv三维重建深度怎么不随视场变化

四、双目匹配与视差计算
立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题,主要是以下因素的影响:

(1) 光学失真和噪声(亮度、色调、饱和度等失衡)

(2) 平滑表面的镜面反射

(3) 投影缩减(Foreshortening)

(4) 透视失真(Perspective distortions)

(5) 低纹理(Low texture)

(6) 重复纹理(Repetitive/ambiguous patterns)

(7) 透明物体

(8) 重叠和非连续

目前立体匹配算法是计算机视觉中的一个难点和热点,算法很多,但是一般的步骤是:

A、匹配代价计算
匹配代价计算是整个立体匹配算法的基础,实际是对不同视差下进行灰度相似性测量。常见的方法有灰度差的平方SD(squared intensity differences),灰度差的绝对值AD(absolute intensity differences)等。另外,在求原始匹配代价时可以设定一个上限值,来减弱叠加过程中的误匹配的影响。以AD法求匹配代价为例,可用下式进行计算,其中T为设定的阈值。

图18
B、 匹配代价叠加
一般来说,全局算法基于原始匹配代价进行后续算法计算。而区域算法则需要通过窗口叠加来增强匹配代价的可靠性,根据原始匹配代价不同,可分为:

图19

C、 视差获取
对于区域算法来说,在完成匹配代价的叠加以后,视差的获取就很容易了,只需在一定范围内选取叠加匹配代价最优的点(SAD和SSD取最小值,NCC取最大值)作为对应匹配点,如胜者为王算法WTA(Winner-take-all)。而全局算法则直接对原始匹配代价进行处理,一般会先给出一个能量评价函数,然后通过不同的优化算法来求得能量的最小值,同时每个点的视差值也就计算出来了。

D、视差细化(亚像素级)
大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。

有关立体匹配的介绍和常见匹配算法的比较,推荐大家看看Stefano Mattoccia 的讲义 Stereo Vision: algorithms and applications,190页的ppt,讲解得非常形象详尽。
1. opencv2.1和opencv2.0在做stereo vision方面有什么区别了?
2.1版增强了Stereo Vision方面的功能:
(1) 新增了 SGBM 立体匹配算法(源自Heiko Hirschmuller的《Stereo Processing by Semi-global Matching and Mutual Information》),可以获得比 BM 算法物体轮廓更清晰的视差图(但低纹理区域容易出现横/斜纹路,在 GCstate->fullDP 选项使能时可消减这种异常纹路,但对应区域视差变为0,且运行速度会有所下降),速度比 BM 稍慢, 352*288的帧处理速度大约是 5 帧/秒;
(2) 视差效果:BM < SGBM < GC;处理速度:BM > SGBM > GC ;
(3) BM 算法比2.0版性能有所提升,其状态参数新增了对左右视图感兴趣区域 ROI 的支持(roi1 和 roi2,由stereoRectify函数产生);
(4) BM 算法和 GC 算法的核心代码改动不大,主要是面向多线程运算方面的(由 OpenMP 转向 Intel TBB);
(5) cvFindStereoCorrespondenceBM 函数的disparity参数的数据格式新增了 CV_32F 的支持,这种格式的数据给出实际视差,而 2.0 版只支持 CV_16S,需要除以 16.0 才能得到实际的视差数值。

2. 用于立体匹配的图像可以是彩色的吗?
在OpenCV2.1中,BM和GC算法只能对8位灰度图像计算视差,SGBM算法则可以处理24位(8bits*3)彩色图像。所以在读入图像时,应该根据采用的算法来处理图像:

int color_mode = alg == STEREO_SGBM ? 1 : 0;
//////////////////////////////////////////////////////////////////////////
// 载入图像
cvGrabFrame( lfCam );
cvGrabFrame( riCam );
frame1 = cvRetrieveFrame( lfCam );
frame2 = cvRetrieveFrame( riCam );
if(frame1.empty()) break;
resize(frame1, img1, img_size, 0, 0);
resize(frame2, img2, img_size, 0, 0);
// 选择彩色或灰度格式作为双目匹配的处理图像
if (!color_mode && cn>1)
{
cvtColor(img1, img1gray, CV_BGR2GRAY);
cvtColor(img2, img2gray, CV_BGR2GRAY);
img1p = img1gray;
img2p = img2gray;
}
else
{
img1p = img1;
img2p = img2;
}

3. 怎样获取与原图像有效像素区域相同的视差图?
在OpenCV2.0及以前的版本中,所获取的视差图总是在左侧和右侧有明显的黑色区域,这些区域没有有效的视差数据。视差图有效像素区域与视差窗口(ndisp,一般取正值且能被16整除)和最小视差值(mindisp,一般取0或负值)相关,视差窗口越大,视差图左侧的黑色区域越大,最小视差值越小,视差图右侧的黑色区域越大。其原因是为了保证参考图像(一般是左视图)的像素点能在目标图像(右视图)中按照设定的视差匹配窗口匹配对应点,OpenCV 只从参考图像的第 (ndisp - 1 + mindisp) 列开始向右计算视差,第 0 列到第 (ndisp - 1 + mindisp) 列的区域视差统一设置为 (mindisp - 1) *16;视差计算到第 width + mindisp 列时停止,余下的右侧区域视差值也统一设置为 (mindisp - 1) *16。
00177 static const int DISPARITY_SHIFT = 4;

00411 int ndisp = state->numberOfDisparities;
00412 int mindisp = state->minDisparity;
00413 int lofs = MAX(ndisp - 1 + mindisp, 0);
00414 int rofs = -MIN(ndisp - 1 + mindisp, 0);
00415 int width = left->cols, height = left->rows;
00416 int width1 = width - rofs - ndisp + 1;

00420 short FILTERED = (short)((mindisp - 1) << DISPARITY_SHIFT);

00466 // initialize the left and right borders of the disparity map
00467 for( y = 0; y < height; y++ )
00468 {
00469 for( x = 0; x < lofs; x++ )
00470 dptr[y*dstep + x] = FILTERED;
00471 for( x = lofs + width1; x < width; x++ )
00472 dptr[y*dstep + x] = FILTERED;
00473 }
00474 dptr += lofs;
00475
00476 for( x = 0; x < width1; x++, dptr++ )



这样的设置很明显是不符合实际应用的需求的,它相当于把摄像头的视场范围缩窄了。因此,OpenCV2.1 做了明显的改进,不再要求左右视图和视差图的大小(size)一致,允许对视差图进行左右边界延拓,这样,虽然计算视差时还是按上面的代码思路来处理左右边界,但是视差图的边界得到延拓后,有效视差的范围就能够与对应视图完全对应。具体的实现代码范例如下:

//////////////////////////////////////////////////////////////////////////
// 对左右视图的左边进行边界延拓,以获取与原始视图相同大小的有效视差区域
MakeBorder(img1r, img1b, 0, 0, m_nMaxDisp, 0, IPL_BORDER_REPLICATE);
MakeBorder(img2r, img2b, 0, 0, m_nMaxDisp, 0, IPL_BORDER_REPLICATE);

//////////////////////////////////////////////////////////////////////////
// 计算视差
if( alg == STEREO_BM )
{
bm(img1b, img2b, dispb);
// 截取与原始画面对应的视差区域(舍去加宽的部分)
displf = dispb.colRange(m_nMaxDisp, img1b.cols);
}
else if(alg == STEREO_SGBM)
{
sgbm(img1b, img2b, dispb);
displf = dispb.colRange(m_nMaxDisp, img1b.cols);
}

4. cvFindStereoCorrespondenceBM的输出结果好像不是以像素点为单位的视差?
“@scyscyao:在OpenCV2.0中,BM函数得出的结果是以16位符号数的形式的存储的,出于精度需要,所有的视差在输出时都扩大了16倍(2^4)。其具体代码表示如下:
dptr[y*dstep] = (short)(((ndisp - mind - 1 + mindisp)*256 + (d != 0 ? (p-n)*128/d : 0) + 15) >> 4);
可以看到,原始视差在左移8位(256)并且加上一个修正值之后又右移了4位,最终的结果就是左移4位。
因此,在实际求距离时,cvReprojectTo3D出来的X/W,Y/W,Z/W都要乘以16 (也就是W除以16),才能得到正确的三维坐标信息。”

在OpenCV2.1中,BM算法可以用 CV_16S 或者 CV_32F 的方式输出视差数据,使用32位float格式可以得到真实的视差值,而CV_16S 格式得到的视差矩阵则需要 除以16 才能得到正确的视差。另外,OpenCV2.1另外两种立体匹配算法 SGBM 和 GC 只支持 CV_16S 格式的 disparity 矩阵。

5. 如何设置BM、SGBM和GC算法的状态参数?
(1)StereoBMState
// 预处理滤波参数
preFilterType:预处理滤波器的类型,主要是用于降低亮度失真(photometric distortions)、消除噪声和增强纹理等, 有两种可选类型:CV_STEREO_BM_NORMALIZED_RESPONSE(归一化响应) 或者 CV_STEREO_BM_XSOBEL(水平方向Sobel算子,默认类型), 该参数为 int 型;
preFilterSize:预处理滤波器窗口大小,容许范围是[5,255],一般应该在 5x5..21x21 之间,参数必须为奇数值, int 型
preFilterCap:预处理滤波器的截断值,预处理的输出值仅保留[-preFilterCap, preFilterCap]范围内的值,参数范围:1 - 31(文档中是31,但代码中是 63), int
// SAD 参数
SADWindowSize:SAD窗口大小,容许范围是[5,255],一般应该在 5x5 至 21x21 之间,参数必须是奇数,int 型
minDisparity:最小视差,默认值为 0, 可以是负值,int 型
numberOfDisparities:视差窗口,即最大视差值与最小视差值之差, 窗口大小必须是 16 的整数倍,int 型
// 后处理参数
textureThreshold:低纹理区域的判断阈值。如果当前SAD窗口内所有邻居像素点的x导数绝对值之和小于指定阈值,则该窗口对应的像素点的视差值为 0(That is, if the sum of absolute values of x-derivatives computed over SADWindowSize by SADWindowSize pixel neighborhood is smaller than the parameter, no disparity is computed at the pixel),该参数不能为负值,int 型
uniquenessRatio:视差唯一性百分比, 视差窗口范围内最低代价是次低代价的(1 + uniquenessRatio/100)倍时,最低代价对应的视差值才是该像素点的视差,否则该像素点的视差为 0 (the minimum margin in percents between the best (minimum) cost function value and the second best value to accept the computed disparity, that is, accept the computed disparity d^ only if SAD(d) >= SAD(d^) x (1 + uniquenessRatio/100.) for any d != d*+/-1 within the search range ),该参数不能为负值,一般5-15左右的值比较合适,int 型
speckleWindowSize:检查视差连通区域变化度的窗口大小, 值为 0 时取消 speckle 检查,int 型
speckleRange:视差变化阈值,当窗口内视差变化大于阈值时,该窗口内的视差清零,int 型
// OpenCV2.1 新增的状态参数
roi1, roi2:左右视图的有效像素区域,一般由双目校正阶段的 cvStereoRectify 函数传递,也可以自行设定。一旦在状态参数中设定了 roi1 和 roi2,OpenCV 会通过cvGetValidDisparityROI 函数计算出视差图的有效区域,在有效区域外的视差值将被清零。
disp12MaxDiff:左视差图(直接计算得出)和右视差图(通过cvValidateDisparity计算得出)之间的最大容许差异。超过该阈值的视差值将被清零。该参数默认为 -1,即不执行左右视差检查。int 型。注意在程序调试阶段最好保持该值为 -1,以便查看不同视差窗口生成的视差效果。具体请参见《使用OpenGL动态显示双目视觉三维重构效果示例》一文中的讨论。
在上述参数中,对视差生成效果影响较大的主要参数是 SADWindowSize、numberOfDisparities 和 uniquenessRatio 三个,一般只需对这三个参数进行调整,其余参数按默认设置即可。
在OpenCV2.1中,BM算法有C和C++ 两种实现模块。

(2)StereoSGBMState
SGBM算法的状态参数大部分与BM算法的一致,下面只解释不同的部分:
SADWindowSize:SAD窗口大小,容许范围是[1,11],一般应该在 3x3 至 11x11 之间,参数必须是奇数,int 型
P1, P2:控制视差变化平滑性的参数。P1、P2的值越大,视差越平滑。P1是相邻像素点视差增/减 1 时的惩罚系数;P2是相邻像素点视差变化值大于1时的惩罚系数。P2必须大于P1。OpenCV2.1提供的例程 stereo_match.cpp 给出了 P1 和 P2 比较合适的数值。
fullDP:布尔值,当设置为 TRUE 时,运行双通道动态编程算法(full-scale 2-pass dynamic programming algorithm),会占用O(W*H*numDisparities)个字节,对于高分辨率图像将占用较大的内存空间。一般设置为 FALSE。
注意OpenCV2.1的SGBM算法是用C++ 语言编写的,没有C实现模块。与H. Hirschmuller提出的原算法相比,主要有如下变化:
算法默认运行单通道DP算法,只用了5个方向,而fullDP使能时则使用8个方向(可能需要占用大量内存)。
算法在计算匹配代价函数时,采用块匹配方法而非像素匹配(不过SADWindowSize=1时就等于像素匹配了)。
匹配代价的计算采用BT算法("Depth Discontinuities by Pixel-to-Pixel Stereo" by S. Birchfield and C. Tomasi),并没有实现基于互熵信息的匹配代价计算。
增加了一些BM算法中的预处理和后处理程序。

❻ 如何使用opencv中的NCC算法实现两幅图像的相似性判断

因此当模板大小确定后,SAD算法的速度最快,有了SAD算法。
再然后是计算区域互相关性的NCC算法。
以上三种算法中,SAD算法最简单。
然后SAD相似的SSD。NCC算法与SAD算法相比要复杂得多。

❼ 网络监控工具ncc的物理拓扑可导出什么文件格式

ASFASF是AdvancedStreamingformat的缩写,由字面(高级流格式)意思就应该看出这个格式的用处了吧。说穿了ASF就是MICROSOFT为了和现在的Realplayer竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式!由于它使用了MPEG4的压缩算法,所以压缩率和图像的质量都很不错。因为ASF是以一个可以在网上即时观赏的视频“流”格式存在的,所以它的图象质量比VCD差一点点并不出奇,但比同是视频“流”格式的RAM格式要好。不过如果你不考虑在网上传播,选最好的质量来压缩文件的话,其生成的视频文件比VCD(MPEG1)好是一点也不奇怪的,但这样的话,就失去了ASF本来的发展初衷,还不如干脆用NAVI或者DIVX。但微软的“子第”就是有它特有的优势,最明显的是各类软件对它的支持方面就无人能敌。nAVInAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式。它是由MicrosoftASF压缩算法的修改而来的(并不是想象中的AVI),视频格式追求的无非是压缩率和图象质量,所以NAVI为了追求这个目标,改善了原始的ASF格式的一些不足,让NAVI可以拥有更高的帧率(framerate)。当然,这是牺牲ASF的视频流特性作为代价的。概括来说,NAVI就是一种去掉视频流特性的改良型ASF格式!再简单点就是---非网络版本的ASF!AVIAVI是AudioVideoInterleave的缩写,这个看来也不用我多解释了,这个微软由WIN3.1时代就发表的旧视频格式已经为我们服务了好几个年头了。如果这个都不认识,我看你还是别往下看了,这个东西的好处嘛,无非是兼容好、调用方便、图象质量好,但缺点我想也是人所共知的:尺寸大!就是因为这点,我们现在才可以看到由MPEG1的诞生到现在MPEG4的出台。MPEGMPEG是MotionPictureExpertsGroup的缩写,它包括了MPEG-1,MPEG-2和MPEG-4(注意,没有MPEG-3,大家熟悉的MP3只是MPEGLayeur3)。MPEG-1相信是大家接触得最多的了,因为它被广泛的应用在VCD的制作和一些视频片段下载的网络应用上面,可以说99%的VCD都是用MPEG1格式压缩的,(注意VCD2.0并不是说明VCD是用MPEG-2压缩的)使用MPEG-1的压缩算法,可以把一部120分钟长的电影(未视频文件)压缩到1.2GB左右大小。MPEG-2则是应用在DVD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用面。使用MPEG-2的压缩算法压缩一部120分钟长的电影(未视频文件)可以到压缩到4到8GB的大小(当然,其图象质量等性能方面的指标MPEG-1是没得比的)。MPEG-4是一种新的压缩算法,使用这种算法的ASF格式可以把一部120分钟长的电影(未视频文件)压缩到300M左右的视频流,可供在网上观看。其它的DIVX格式也可以压缩到600M左右,但其图象质量比ASF要好很多。DIVXDIVX视频编码技术可以说是一种对DVD造成威胁的新生视频压缩格式(有人说它是DVD杀手),它由Microsoftmpeg4v3修改而来,使用MPEG4压缩算法。同时它也可以说是为了打破ASF的种种协定而发展出来的。而使用这种据说是美国禁止出口的编码技术---MPEG4压缩一部DVD只需要2张CDROM!这样就意味着,你不需要买DVDROM也可以得到和它差不多的视频质量了,而这一切只需要你有CDROM哦!况且播放这种编码,对机器的要求也不高,CPU只要是300MHZ以上(不管你是PII,CELERON,PIII,AMDK6/2,AMDK6III,AMDATHALON,CYRIXx86)在配上64兆的内存和一个8兆显存的显卡就可以流畅的播放了。这绝对是一个了不起的技术,前途不可限量!QuickTimeQuickTime(MOV)是Apple(苹果)公司创立的一种视频格式,在很长的一段时间里,它都是只在苹果公司的MAC机上存在。后来才发展到支持WINDOWS平台的,但平心而论,它无论是在本地播放还是作为视频流格式在网上传播,都是一种优良的视频编码格式。到目前为止,它共有4个版本,其中以4.0版本的压缩率最好!REALVIDEOREALVIDEO(RA、RAM)格式由一开始就是定位就是在视频流应用方面的,也可以说是视频流技术的始创者。它可以在用56KMODEM拨号上网的条件实现不间断的视频播放,当然,其图象质量和MPEG2、DIVX等比是不敢恭维的啦。毕竟要实现在网上传输不间断的视频是需要很大的频宽的,这方面ASF的它的有力竞争者!MPEG-4标准现代移动通讯和个人通讯业务要求从普通话音扩展到多媒体业务,即提供声音、文字、数据、图形和视频等信息媒体,使用户在移动通讯网中进行生动、丰富和有效的多媒体信息交流,其实现的关键技术是甚低速音频视频压缩。MPEG-4目标专门用于64Kbps以下甚低速率的音视编码适用于移动通讯、个人通讯、固定公用通讯网和电视电话适用于窄带多媒体通讯等广泛应用实现基于内容的压缩编码,具有良好兼容性、伸缩性和可靠性MPEG-4主要功能基于内容的多媒体数据存取工具基于内容的管理和数码流的编辑自然的与合成的景物混合编码时间域的随机存取改进编码效率多路并存的数码流编码通用存取差错环境中的坚韧性基于内容的可分级性MPEG-4的显着特点是\"基于内容的\",编码时,应考虑不同视频内容,如:文字、绘图与计算机生成的景象,画面各部分活动情况等;视频格式应包括以下参数:空间亮度分辨率,空间色度分辨率,时间分辨率,像素宽高比,取样量化,Y、Cb、Cr样值比特率,色度空间、逐行或隔行扫描,平面或立体等。MPEG-4制定了一个称为传输多媒体集成框架(DMIF)的会话协议,用来管理多媒体数据流。WindowsMedia视频与音频Codec

❽ NCC匹配算法是不是只能匹配灰度图

50,33,-12分别为上左右角

❾ ncc核算组织编码

摘要 一、NCC的基础概念

热点内容
安卓平板如何实现电脑双击 发布:2024-09-28 21:27:11 浏览:359
德育php 发布:2024-09-28 21:24:36 浏览:16
企业密信如何登录服务器ld 发布:2024-09-28 21:22:52 浏览:462
通过ip不能访问网站 发布:2024-09-28 21:21:47 浏览:522
c语言取整数部分 发布:2024-09-28 21:17:59 浏览:65
进来学编程 发布:2024-09-28 21:01:17 浏览:965
ios微信记录怎么转移到安卓手机 发布:2024-09-28 20:49:15 浏览:710
新建的access数据库如何设置密码 发布:2024-09-28 20:41:21 浏览:214
文件夹防删除 发布:2024-09-28 20:16:13 浏览:687
安卓美团账号怎么退出 发布:2024-09-28 20:04:52 浏览:852