tag:blogger.com,1999:blog-2791112373738607920.post7658533349152671273..comments2022-03-30T05:02:34.915+08:00Comments on 昨日: 資料結構操作與運算-CvMat的標頭實作wa114040@gmail.comhttp://www.blogger.com/profile/09789688217343840149noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-2791112373738607920.post-13413074626479829412009-02-18T15:26:00.000+08:002009-02-18T15:26:00.000+08:00恩~差不多瞭解你的意思了,謝謝 :D恩~差不多瞭解你的意思了,謝謝 :DAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2791112373738607920.post-42998629365819770102009-02-18T11:49:00.000+08:002009-02-18T11:49:00.000+08:00void cvRange( CvArr* mat, double start, double end...void cvRange( CvArr* mat, double start, double end );<BR/><BR/>mat<BR/> The matrix to initialize. It should be single-channel 32-bit, integer or floating-point.<BR/>单通道32位整形也可以用cvRangeUnknownhttps://www.blogger.com/profile/04221608491365292600noreply@blogger.comtag:blogger.com,1999:blog-2791112373738607920.post-80771293729862882762009-02-18T05:06:00.000+08:002009-02-18T05:06:00.000+08:00cvMat *Matrix1; <--未給空間cvMat Matrix2; <--...cvMat *Matrix1; <--未給空間<BR/>cvMat Matrix2; <--已經配置一段空間<BR/><BR/>cvInitMatHeader()是直接給數值未做資料結構初始化,所以說給一個沒創立空間的Matrix1會出錯,但是,如果有用cvCreateMat()就會是正確的~<BR/><BR/>用Matrix2這種方式的好處,可以避免Memory leak,將同樣的變數一直用cvCreateMat()不斷的創造新的記憶體空間而忘了release,倒不如直接用cvMat Matrix2;這種方式來的安全,<BR/><BR/>第二個問題~ 是的XD,不過cvInitMatHeader(&Matrix2,4,4,CV_32FC1,Array,CV_AUTOSTEP);<BR/>的函式呼叫如果給int Array[2][8];<BR/>的矩陣,它還是會視為4*4的矩陣,因為他裡面是用Matrix2.step的方式來計算矩陣跳躍的空間wa114040@gmail.comhttps://www.blogger.com/profile/09789688217343840149noreply@blogger.comtag:blogger.com,1999:blog-2791112373738607920.post-34854625057327370442009-02-17T20:17:00.000+08:002009-02-17T20:17:00.000+08:00你好,我想請問一下cvMat Matrix2;cvInitMatHeader(&Matrix...你好,我想請問一下<BR/>cvMat Matrix2;<BR/>cvInitMatHeader(&Matrix2,4,4,CV_32FC2,NULL,CV_AUTOSTEP);<BR/>為什麼要宣靠成這樣而不是cvMat *Matrix2呢?<BR/><BR/>另外,cvInitMatHeader()初始化矩陣標頭資訊,不包含CvMat標頭空間的創立,那第五個引數(資料空間輸入)如果有設值或者矩陣給它,會有整個完成的Mat資訊嗎?<BR/><BR/><BR/>謝謝,看您的文章對學習openCV實在幫助很大 : )Anonymousnoreply@blogger.com