[問題] OpenCV 做透視轉換

看板C_and_CPP作者 (假斯汀)時間15年前 (2009/06/14 12:10), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
有找到兩種函式 1.void cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix,    int flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,    CvScalar fillval=cvScalarAll(0) );   src   輸入圖像.   dst   輸出圖像.   map_matrix   3×3 變換矩陣   flags   差值方法的開關選項:   CV_WARP_FILL_OUTLIERS - 填充所有縮小圖像的像素。如果部分像素落在輸入圖像的 邊界外,那麼它們的值設定為 fillval.   CV_WARP_INVERSE_MAP - 指定 matrix 是輸出圖像到輸入圖像的反變換,因此可以直 接用來做像素差值。否則, 函數從 map_matrix 得到反變換。   fillval   用來填充邊界外面的值 2.CvMat* cvWarpPerspectiveQMatrix( const CvPoint2D32f* src,    const CvPoint2D32f* dst,    CvMat* map_matrix );   src   輸入圖像的四邊形的4個點坐標   dst   輸出圖像的對應四邊形的4個點坐標   map_matrix   輸出的 3×3 矩陣 比較起來似乎第2種方法會比較快吧? 想請問的是要怎麼取出輸入圖像的4個點坐標呢? 感謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.36.60

06/14 12:44, , 1F
兩種的性質不一樣 一個是輸入圖 一個是輸入點阿
06/14 12:44, 1F

06/14 13:12, , 2F
1.應該是array 2.應該是點 取點的運算量是不是比較小
06/14 13:12, 2F

06/14 13:13, , 3F
不過我正在研究其中的運算式,不知怎麼變換就是了.....
06/14 13:13, 3F

06/14 13:16, , 4F
剛查了一下CvArr可指定不同類型,但是圖要怎麼變成那樣
06/14 13:16, 4F

06/14 16:42, , 5F
第一種是,給SRC圖,給變換矩陣,輸出DST圖
06/14 16:42, 5F

06/14 16:43, , 6F
第二種是,給兩張圖其中分別對應的四組座標,算出矩陣
06/14 16:43, 6F
文章代碼(AID): #1AD7X8Mq (C_and_CPP)
文章代碼(AID): #1AD7X8Mq (C_and_CPP)