opencv中的镜像

Mirror image in opencv

本文关键字:镜像 opencv      更新时间:2023-10-16

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

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

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

分割错误的原因之一是您可能没有对网络摄像头传递给OpenCV的"坏"帧进行检查。您需要检查帧是否为NULL,然后对流使用flip/other操作。

I thick 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);