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

正文內(nèi)容

高效opencv編程入門(opencv編程簡介(矩陣圖像視頻的基本讀寫操作))-資料下載頁

2025-01-07 07:45本頁面
  

【正文】 ,i,j)。 // Get M(i,j) [編輯 ] ( 3) 直接訪問(假設(shè)矩陣數(shù)據(jù)按 4字節(jié)行對齊) : CvMat* M = cvCreateMat(4,4,CV_32FC1)。 int n = Mcols。 float *data = M。 data[i*n+j] = 。 [編輯 ] ( 4) 直接訪問(當數(shù)據(jù)的行對齊可能存在間隙時 possible alignment gaps) : CvMat* M = cvCreateMat(4,4,CV_32FC1)。 int step = Mstep/sizeof(float)。 float *data = M。 (data+i*step)[j] = 。 [編輯 ] ( 5) 對于初始化后的矩陣進行直接訪問 : double a[16]。 CvMat Ma = cvMat(3, 4, CV_64FC1, a)。 a[i*4+j] = 。 // Ma(i,j)=。 [編輯 ] 矩陣 /向量運算 [編輯 ] ( 1) 矩陣之間的運算 : CvMat *Ma, *Mb, *Mc。 cvAdd(Ma, Mb, Mc)。 // Ma+Mb Mc cvSub(Ma, Mb, Mc)。 // MaMb Mc cvMatMul(Ma, Mb, Mc)。 // Ma*Mb Mc [編輯 ] ( 2) 矩陣之間的元素級運算 : CvMat *Ma, *Mb, *Mc。 cvMul(Ma, Mb, Mc)。 // Ma.*Mb Mc cvDiv(Ma, Mb, Mc)。 // Ma./Mb Mc cvAddS(Ma, cvScalar(), Mc)。 // Mc [編輯 ] ( 3) 向量乘積 : double va[] = {1, 2, 3}。 double vb[] = {0, 0, 1}。 double vc[3]。 CvMat Va=cvMat(3, 1, CV_64FC1, va)。 CvMat Vb=cvMat(3, 1, CV_64FC1, vb)。 CvMat Vc=cvMat(3, 1, CV_64FC1, vc)。 double res=cvDotProduct(amp。Va,amp。Vb)。 // 向量點乘 : Va . Vb res cvCrossProduct(amp。Va, amp。Vb, amp。Vc)。 // 向量叉乘 : Va x Vb Vc 注意在進行叉乘運算時, Va, Vb, Vc 必須是僅有 3個元素的向量 . [編輯 ] ( 4) 單一矩陣的運算 : CvMat *Ma, *Mb。 cvTranspose(Ma, Mb)。 // 轉(zhuǎn)置: transpose(Ma) Mb (注意轉(zhuǎn)置陣不能返回給 Ma本身 ) CvScalar t = cvTrace(Ma)。 // 跡: trace(Ma) [0] double d = cvDet(Ma)。 // 行列式: det(Ma) d cvInvert(Ma, Mb)。 // 逆矩陣: inv(Ma) Mb [編輯 ] ( 5) 非齊次線性方程求解 : CvMat* A = cvCreateMat(3,3,CV_32FC1)。 CvMat* x = cvCreateMat(3,1,CV_32FC1)。 CvMat* b = cvCreateMat(3,1,CV_32FC1)。 cvSolve(amp。A, amp。b, amp。x)。 // solve (Ax=b) for x [編輯 ] ( 6) 特征值與特征向量 (矩陣為方陣 ): CvMat* A = cvCreateMat(3,3,CV_32FC1)。 CvMat* E = cvCreateMat(3,3,CV_32FC1)。 CvMat* l = cvCreateMat(3,1,CV_32FC1)。 cvEigenVV(A, E, l)。 // l = A 的特征值 (遞減順序 ) // E = 對應(yīng)的特征向量 (行向量 ) ( 7) 奇異值分解( SVD) :==== CvMat* A = cvCreateMat(3,3,CV_32FC1)。 CvMat* U = cvCreateMat(3,3,CV_32FC1)。 CvMat* D = cvCreateMat(3,3,CV_32FC1)。 CvMat* V = cvCreateMat(3,3,CV_32FC1)。 cvSVD(A, D, U, V, CV_SVD_U_T|CV_SVD_V_T)。 // A = U D V^T 標志位使矩陣 U或 V按轉(zhuǎn)置形式返回 (若不轉(zhuǎn)置可能運算出錯 ). [編輯 ] 六、視頻處理 [編輯 ] 從視頻流中捕捉一幀畫面 [編輯 ] ( 1) OpenCV 支持從攝像頭或視頻文件( AVI格式 )中捕捉幀畫面 . [編輯 ] ( 2) 初始化一個攝像頭捕捉器 : CvCapture* capture = cvCaptureFromCAM(0)。 // capture from video device 0 [編輯 ] ( 3) 初始化一個視頻文件捕捉器 : CvCapture* capture = cvCaptureFromAVI()。 [編輯 ] ( 4) 捕捉一幀畫面 : IplImage* img = 0。 if(!cvGrabFrame(capture)){ // capture a frame printf(Could not grab a frame\n\7)。 exit(0)。 } img=cvRetrieveFrame(capture)。 // retrieve the captured frame 若要從多個攝像頭中同步捕捉畫面,則須首先從每個攝像頭中抓取一幀,緊接著要將被捕捉的幀畫面恢復(fù)到一個 IplImage*型圖像中。(譯注:這一過程其實可以用 cvQueryFrame() 函數(shù)一步完成) [編輯 ] ( 5) 釋放視頻流捕捉器 : cvReleaseCapture(amp。capture)。 注意由視頻流捕捉器得到的圖像是由捕捉器分配和釋放內(nèi)存的,不需要單獨對圖像進行釋放內(nèi)存的操作。 [編輯 ] 獲取 /設(shè)置視頻流信息 [編輯 ] ( 1) 獲取視頻流設(shè)備信息 : cvQueryFrame(capture)。 // 在讀取視頻流信息前,要先執(zhí)行此操作 int frameH = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)。 int frameW = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH)。 int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)。 int numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT)。 統(tǒng)計總幀數(shù)僅對視頻文件有效,但似乎不太準確(譯注:也許 ) [編輯 ] ( 2) 獲取幀圖信息 : float posMsec = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_MSEC)。 int posFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES)。 float posRatio = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO)。 所抓取的幀的位置有三種表達方式:距離第一幀畫面的時間間隔(毫秒為單位) , 或者距離第一幀畫面(序列號為 0)的序列數(shù) . 第三種方式是按相對比率,第一幀的相對比率為 0,最后一幀的相對比率為 1. 此方式僅對讀取視頻文件時有效 . [編輯 ] ( 3) 設(shè)置從視頻文件抓取的第一幀畫面的位置 : // start capturing from a relative position of of a video file cvSetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO, (double))。 注意此方法定位并不準確。 [編輯 ] 保存視頻文件 [編輯 ] ( 1) 初始化視頻編寫器 : CvVideoWriter *writer = 0。 int isColor = 1。 int fps = 25。 // or 30 int frameW = 640。 // 744 for firewire cameras int frameH = 480。 // 480 for firewire cameras writer=cvCreateVideoWriter(,CV_FOURCC(39。P39。,39。I39。,39。M39。,39。139。), fps,cvSize(frameW,frameH),isColor)。 其 它 的 編 碼 器 代 號 包 括 : CV_FOURCC(39。P39。,39。I39。,39。M39。,39。139。) = MPEG1 codec CV_FOURCC(39。M39。,39。J39。,39。P39。,39。G39。) = motionjpeg codec (does not work well) CV_FOURCC(39。M39。, 39。P39。, 39。439。, 39。239。) = codec CV_FOURCC(39。D39。, 39。I39。, 39。V39。, 39。339。) = codec CV_FOURCC(39。D39。, 39。I39。, 39。V39。, 39。X39。) = MPEG4 codec CV_FOURCC(39。U39。, 39。239。, 39。639。, 39。339。) = H263 codec CV_FOURCC(39。I39。, 39。239。, 39。639。, 39。339。) = H263I codec CV_FOURCC(39。F39。, 39。L39。, 39。V39。, 39。139。) = FLV1 codec 若編碼器代號為 1,則運行時會彈出一個編碼 器選擇框 . [編輯 ] ( 2) 保持視頻文件 : IplImage* img = 0。 int nFrames = 50。 for(i=0。inFrames。i++){ cvGrabFrame(capture)。 // capture a frame img=cvRetrieveFrame(capture)。 // retrieve the captured frame // img = cvQueryFrame(capture)。 cvWriteFrame(writer,img)。 // add the frame to the file } 要查看所抓取到的幀畫面,可以在循環(huán)中加入以下語句 : cvShowImage(mainWin, img)。 key=cvWaitKey(20)。 // wait 20 ms 注意 cvWaitKey 參數(shù)應(yīng)該不小于 20 ms,否則畫面的顯示可能出錯 . [編輯 ] ( 3) 釋放視頻編寫器 : cvReleaseVideoWriter(amp。writer)。 By Gady Agam 20220331 翻譯: chenyusiyuan 2022126 取自%BB%8B%EF%BC%88%E7%9F%A9%E9%98%B5/%E5%9B%BE%E5%83%8F/%E8%A7%86%E9%A2%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%BB%E5%86%99%E6%93%8D%E4%BD%9C%EF%BC%89 Views ? 條目 ? 討論 ? 編輯 ? History ? 不轉(zhuǎn)換 ? 簡體 ? 繁體 導(dǎo)航 ? 首頁 ? 新聞動態(tài) ? 最近更改 ? 編輯幫助 ? 關(guān)于本站 Personal tools ? 用戶登錄 工具 ? 鏈入頁面 ? 鏈出更改 ? 上載文件 ? 特殊頁面 ? 可打印版
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1