2

我需要翻转(镜像)从网络摄像头收到的帧,然后我遵循如下代码:

cv::flip(gray,gray,1);
imshow("flipped",gray);

灰色是 cv::Mat 格式,翻转是 cvNamedWindow。我在 qt creator IDE 中遇到分段错误。我怀疑灰色的维度可能是分段错误的原因。gray 是从凸轮接收到的实际图像转换的灰度图像。如何清除错误?有人有更好的主意吗?

4

2 回答 2

2

分段错误的原因之一是您可能没有对网络摄像头传递给 OpenCV 的“坏”帧进行检查。您需要检查帧是否为 NULL,然后在流上使用翻转/其他操作。

于 2013-02-16T09:22:36.470 回答
2

我认为MingW是判决。据报道,我使用的版本有一些像这样的错误。因此,为了获得镜像,我使用翻转代码 0 翻转了 src 图像,然后将其旋转 180 度以沿 y 轴翻转它。

    cv::Mat dst;
    cv::flip(src,dst,0);
    Point2f src_center(dst.cols/2.0F, dst.rows/2.0F);

    cv::Mat rot_matrix = getRotationMatrix2D(src_center, 180.0, 1.0);

    cv::Mat rotated_img(Size(dst.size().height, dst.size().width), dst.type());

    warpAffine(dst, rotated_img, rot_matrix, dst.size());


    imshow("flipped",rotated_img);
于 2013-02-17T16:28:04.737 回答