16

我正在做一个需要翻转帧的视频处理项目。我尝试使用 cvFlip 但似乎没有沿 y 轴翻转(x 轴工作......)并导致分段错误。还有其他选择吗??

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

imshow("flipped",dst);
4

3 回答 3

16
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)
于 2013-02-17T11:47:50.293 回答
8

使用cv::flip并传递1flipcode.

使用示例代码查看您的编辑,您无法原地翻转。您需要一个单独的目的地cv::Mat

cv::Mat dst;
cv::flip(src, dst, 1);
imshow("flipped",dst);
于 2013-02-17T10:47:26.020 回答
6

关键是创建dst完全一样的src

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

imshow("flipped", dst);
于 2016-04-28T21:38:29.737 回答