當前位置:首頁 » 操作系統 » 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-11-15 14:27:44 瀏覽:253
編譯原理斷言有哪幾種 發布:2024-11-15 14:25:29 瀏覽:200
資料庫數據重復 發布:2024-11-15 14:23:17 瀏覽:781
安卓端開發用什麼IDE 發布:2024-11-15 14:13:51 瀏覽:554
阿里雲查看訪問ip 發布:2024-11-15 14:08:58 瀏覽:544
隨機字元串php 發布:2024-11-15 14:03:46 瀏覽:122
怎樣用資料庫搭建伺服器 發布:2024-11-15 13:58:39 瀏覽:478
android編碼設置 發布:2024-11-15 13:50:02 瀏覽:907
androidstringchar 發布:2024-11-15 13:45:00 瀏覽:965
obs配置怎麼弄 發布:2024-11-15 13:43:30 瀏覽:868