freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文設(shè)計基于快匹配的人群運動估計-資料下載頁

2025-06-28 10:34本頁面
  

【正文】 實現(xiàn)中用到的各種數(shù)據(jù)結(jié)構(gòu)與函數(shù)如下:(1) cxcore:CvMat,cvCreateMat,cvReleaseMat,IplImage,cvCreateImage,cvReleaseImage,cvSetZero,ConvertScale,cvCmpS,cvCopy,GetReal*D,cvLine,cvPoint;(2) highgui:CvCapture,cvCreateFileCapture,cvReleaseCapture,cvQueryFrame,cvSetCaptureProperty, cvGetCaptureProperty,cvCreateTrackbar ,cvNamedWindow,cvMoveWindow,cvDestroyWindow ,cvShowImage,cvWaitKey;(3) cv:cvCvtColor ,cvSmooth,cvCalcOpticalFlowBM;(4) c 語言中數(shù)學庫里的函數(shù):ceil;(5) 其他函數(shù):cvsize,cvpoint 。下面介紹程序中用到的各種重要函數(shù)與數(shù)據(jù)結(jié)構(gòu)。 該文件中都是圖像處理的函數(shù)與數(shù)據(jù)結(jié)構(gòu)。 CvPoint,CvSizeOpenCV 提供了多種基本數(shù)據(jù)類型,雖然這些數(shù)據(jù)類型在 C 語言中不是基本類型,但結(jié)構(gòu)都很簡單,可將它們作為原子類型,定義在“ …/OpenCV/cxcore/include” 的 中。1. 在這些數(shù)據(jù)類型中最簡單的就是 CvPoint。CvPoint 是一個簡單的機構(gòu)體,定義如下:CvPoint 二維坐標系下的點,類型為整型 typedef struct CvPoint四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計18{int x。 /* X 坐標, 通常以 0 為基點 */int y。 /* y 坐標, 通常以 0 為基點 */}CvPoint。CvPoint 有兩個變體類型; CvPoint2D32f 和 CvPoint3D32f。前者同樣有兩個成員x,y,但他們是浮點類型;后者多一個浮點類型的成員 z。2. CvSize 類型與 cvPoint 非常相似,但它的數(shù)據(jù)成員是 integer 類型的 width 和height。如果希望使用浮點類型,則選用 CvSize 的變體類型 CvSize2D32f。 CvMatOpenCV 里有三大數(shù)據(jù)結(jié)構(gòu):CvArr、CvMat、IplImage,它們遵循面向?qū)ο蟮乃枷?。實際上,IplImage 是 CvMat 的派生,而 CvMat 由 CvArr 派生: 圖 31 CvArr,CvMat ,IplImage 的關(guān)系圖在 OpenCV 中沒有向量結(jié)構(gòu)。任何時候需要向量,都只需要一個列矩陣。OpenCV 矩陣的概念與線性代數(shù)課里的概念相比,更抽象,尤其是矩陣的元素,并非只能取簡單的數(shù)值類型。例如,一個用于新建一個二維矩陣的例程具有以下原型:cvMat* cvCreateMat ( int rows, int cols, int type )。CvMat 數(shù)據(jù)結(jié)構(gòu)的定義:typedef struct CvMat{int type。 /* CvMat 標識 (CV_MAT_MAGIC_VAL), 元素類型和標記 */int step。 /*每行所占的總位數(shù)*/int* refcount。 /* 數(shù)據(jù)引用計數(shù) */union四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計19{uchar* ptr。/* 矩陣頭,指向矩陣第 0 行第 0 個元素*/short* s。int* i。float* fl。double* db。} data。 /* data 指針 */ifdef __cplusplusunion{int rows。int height。}。union{int cols。int width。}。elseint rows。 /* 行數(shù) */int cols。 /* 列數(shù)*/endif} CvMat。與 CvMat 配套的有 cvCreateMat,cvReleaseMatcvCreateMat 用來創(chuàng)建 CvMat,格式如下:cvCreateMat ( int rows, int cols, int type )。cvReleaseMat 用來釋放 CvMat,cvReleaseMat(amp。CvMat) IplImage從本質(zhì)上講,它是一個 CvMat 對象,但它還有其他一些成員變量將矩陣解釋為圖像。這個結(jié)構(gòu)最初被定義為 Intel 圖像處理庫 (IPL)的一部分。IplImage 結(jié)構(gòu)的準確定義:typedef struct _IplImage {四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計20 int nSize。 int ID。 int nChannels。 int alphaChannel。 int depth。 char colorModel[4]。 char channelSeq[4]。 int dataOrder。 int origin。 int align。 int width。 int height。 struct _IplROI* roi。 struct _IplImage* maskROI。 void* imageId。 struct _IplTileInfo* tileInfo。 int imageSize。 char* imageData。 int widthStep。 int BorderMode[4]。 int BorderConst[4]。 char* imageDataOrigin。} IplImage。width 和 height 這兩個變量很重要,其次是 depth 和 nchannals。depth 變量的值取自 中定義的一組數(shù)據(jù),但與在矩陣中看到的對應變量不同。因為在圖像中,往往將深度和通道數(shù)分開處理,而在矩陣中,往往同時表示它們.可用的深度值如表 32 所示。 表 32: OpenCV 圖像深度類型宏 圖像像素類型IPL_DEPTH_8U 無符號 8 位整數(shù) (8u) IPL_DEPTH_8S 有符號 8 位整數(shù)(8s) 四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計21IPL_DEPTH_16S 有符號 16 位整數(shù)(16s) IPL_DEPTH_32S 有符號 32 位整數(shù)(32s) IPL_DEPTH_32F 32 位浮點數(shù)單精度(32f) IPL_DEPTH_64F 64 位浮點數(shù)雙精度(64f) 通道數(shù) nChannels 可取的值是 1,2,3 或 4。Origin 變量有兩種取值:IPL_ORIGIN_TL 或 OPL_ORIGIN_BL,分別設(shè)置坐標原點的位置于圖像的左上角或左下角。而 OpenCV 經(jīng)常出錯于此,有時在轉(zhuǎn)換通道時原點會變換,有時在平滑處理時會,這些會導致圖像顛倒,甚至造成處理的嚴重偏差。同 CvMat,IplImage 也有配套函數(shù):cvCreateImage,cvReleaseImage它們格式分別是: cvCreateImage( CvSize size, int depth, int channels )。cvReleaseImage(amp。Image)。 其他函數(shù) 前面介紹的都是數(shù)據(jù)結(jié)構(gòu),下面介紹函數(shù):1)cvSetZero清空數(shù)組 void cvSetZero( CvArr* arr )。define cvZero cvSetZeroarr 要被清空數(shù)組. 函數(shù) cvSetZero 清空數(shù)組. 對于密集型號數(shù)組 (CvMat, CvMatND or IplImage) cvZero(array) 就相當于 cvSet(array,cvScalarAll(0),0), 對于稀疏數(shù)組所有的元素都將被刪除. 函數(shù) cvSetZero()僅僅是 cvSet()別名。void cvSet(CvArr*arr,CvScalar value,const CvArr*mask=NULL)。 這些函數(shù)能將數(shù)組的所有通道的所有值設(shè)置為指定的參數(shù) value。該 cvSet()函數(shù)接受一個可選的參數(shù):如果提供參數(shù),那么只有那些與參數(shù) mask 中非 0 值對應的像素將被設(shè)置為指定的值。2) cv ConvertScale(本程序用的是 cvConvert)使用線性變換轉(zhuǎn)換數(shù)組 四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計22void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 )。define cvCvtScale cvConvertScaledefine cvScale cvConvertScaledefine cvConvert( src, dst ) cvConvertScale( (src), (dst), 1, 0 )src 輸入數(shù)組. dst 輸出數(shù)組 scale 比例因子. shift 該加數(shù)被加到輸入數(shù)組元素按比例縮放后得到的元素上 函數(shù) cvConvertScale 有多個不同的目的因此就有多個同義函數(shù)(如上面的define 所示) 。該函數(shù)首先對輸入數(shù)組的元素進行比例縮放,然后將 shift 加到比例縮放后得到的各元素上,即: dst(I)=src(I)*scale + (shift,shift,...),最后可選的類型轉(zhuǎn)換將結(jié)果拷貝到輸出數(shù)組。 多通道的數(shù)組對各個通道是獨立處理的。 類型轉(zhuǎn)換主要用舍入和溢出截斷來完成。也就是如果縮放+轉(zhuǎn)換后的結(jié)果值不能用輸出數(shù)組元素類型值精確表達,就設(shè)置成在輸出數(shù)組數(shù)據(jù)軸上最接近該數(shù)的值。 如果 scale=1, shift=0 就不會進行比例縮放. 這是一個特殊的優(yōu)化,相當于該函數(shù)的同義函數(shù)名:cvConvert 。如果原來數(shù)組和輸出數(shù)組的類型相同,這是另一種特殊情形,可以被用于比例縮放和平移矩陣或圖像,此時相當于該函數(shù)的同義函數(shù)名:cvScale。3) cvCmpS比較數(shù)組的每個元素與數(shù)量的關(guān)系 void cvCmpS( const CvArr* src, double value, CvArr* dst, int cmp_op )。src 原數(shù),必須有一個單通道。 value 用與數(shù)組元素比較的數(shù)量值 dst 輸出數(shù)組必須是 8u 或 8s 類型. cmp_op 該標識指定要檢查的元素之間的關(guān)系: CV_CMP_EQ src1(I) 等于 value CV_CMP_GT src1(I) 大于 value 四川大學本科畢業(yè)論文 基于塊匹配的人群運動估計23CV_CMP_GE src1(I) 大于等于 value CV_CMP_LT src1(I) 小于 value CV_CMP_LE src1(I) 小于等于 value CV_CMP_NE src1(I) 不等于 value 函數(shù) cvCmpS 比較數(shù)組元素與數(shù)量并且添充目標復蓋面數(shù)組: dst(I)=src(I) op scalar,這里 op 是 39。=39。, 39。39。, 39。=39。, 39。39。, 39。=39。 or 39。!=39。. 如果元素之間的關(guān)系為真則設(shè)置 dst(I)為 0xff (也就是所有的位都為 39。139。) 否則為 0。所有的數(shù)組必須有相同的大?。ɑ?ROI 大?。?) cvCopy拷貝一個數(shù)組給另一個數(shù)組 void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL )。src 輸入數(shù)組。 dst 輸出數(shù)組。 mask 操作掩碼是 8 比特單通道的數(shù)組,它指定了輸出數(shù)組中被改變的元素。 函數(shù) cvCopy 從輸入數(shù)組中復制選定的成分到輸出數(shù)組: 如果 mask(I)!=0,則 dst(I)=src(I)。 如果輸入輸出數(shù)組中的一個是 IplImage 類型的話,其 ROI 和 COI 將被使用。輸入輸出數(shù)組必須是同樣的類型、維數(shù)和大小。函數(shù)也可以用來復制散列數(shù)組(這種
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1