2013-02-17 85 views
7

我正在處理需要一些幀翻轉的視頻處理項目。我嘗試使用cvFlip,但似乎沒有沿y軸(x軸工作...)翻轉並導致分段錯誤。有沒有其他選擇?翻轉圖像以獲得鏡像效果

cv::Mat dst=src;  //src= source image from cam 
cv::flip(dst, dst, 1);  //segmentation fault shown 

imshow("flipped",dst); 
+0

請張貼相關的代碼,這樣的人可以幫你解決這個問題。 – Mat 2013-02-17 10:58:36

+0

這與Qt有什麼關係? – 2013-02-17 15:24:53

+0

@Stephen Chu根本沒有 – berak 2013-02-17 15:46:43

回答

4

使用cv::flip並通過1flipcode

用示例代碼來看你的編輯,你不能在原地翻轉。你需要一個獨立的目標cv::Mat

cv::Mat dst; 
cv::flip(src, dst, 1); 
imshow("flipped",dst); 
+0

我試過,先生,但導致分段錯誤.... – ranger 2013-02-17 10:50:30

+1

@ranger你不能在原地翻轉。請參閱編輯。 – juanchopanza 2013-02-17 13:56:34

+0

我嘗試了單獨的目的地以及stil顯示分段錯誤! – ranger 2013-02-17 16:12:44

10
cv::Mat src=imload("bla.png"); 
cv::Mat dst;    // dst must be a different Mat 
cv::flip(src, dst, 1);  // because you can't flip in-place (leads to segfault) 
2

的關鍵是創建dst酷似src

cv::Mat dst = cv::Mat(src.rows, src.cols, CV_8UC3); 
cv::flip(src, dst, 1); 

imshow("flipped", dst); 
+1

沒有必要設置'dst = cv :: Mat(src.rows,src.cols,CV_8UC3);'翻轉功能自動處理。 – PaulrBear 2017-03-31 23:17:25