2013-02-17 72 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