在opencv中镜像

时间:2013-02-16 07:16:34

标签: c++ image opencv image-processing

我需要翻转(镜像)从网络摄像头收到的帧,我按照这样的代码:

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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);