精华内容
下载资源
问答
  • 2021-04-15 09:33:57

    一、图像上下翻转

    import cv2

    import numpy as np

    # 上下翻转

    def RotateClockWise180(img):

        new_img=np.zeros_like(img)

        h,w=img.shape[0],img.shape[1]

        for in range(h): #上下翻转

            new_img[i]=img[h-i-1]

        return new_img

    # 调用usb摄像头

    camera_id=0

    cap = cv2.VideoCapture(camera_id)

    # #重置分辨率

    # cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)

    # cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

    # 显示

    while True:

        ret, frame = cap.read()

        new_frame=RotateClockWise180(frame)

        cv2.imshow("window", new_frame)

     

        if cv2.waitKey(1) & 0xFF == ord("q"):

            break

    # 关闭

    cap.release()

    cv2.destroyAllWindows()

    更多相关内容
  • opencv学习——左右翻转摄像头 VideoCapture video; video.open(0); 一般我们使用上面的代码打开摄像头后,屏幕里的视频图像不是镜像的,为了实现镜像的效果,可以使用下面的方法,将每一帧的图像左右翻转过来 //...

    opencv学习——左右翻转摄像头

    VideoCapture video;
    video.open(0);
    

    一般我们使用上面的代码打开摄像头后,屏幕里的视频图像不是镜像的,为了实现镜像的效果,可以使用下面的方法,将每一帧的图像左右翻转过来

    //左右翻转图像
    Point2f triangleA[3];
    Point2f triangleB[3];
    
    triangleA[0] = Point2f(0, 0);
    triangleA[1] = Point2f(1, 0);
    triangleA[2] = Point2f(0, 1);
    
    triangleB[0] = Point2f(1, 0);
    triangleB[1] = Point2f(0, 0);
    triangleB[2] = Point2f(1, 1);
    
    Mat affineMat = getAffineTransform(triangleA, triangleB);
    
    warpAffine(beforeFrame,
              frame,
              affineMat,
              beforeFrame.size(),
              INTER_CUBIC,
              BORDER_WRAP);
    

    warpAffin()函数可用于执行仿射变换。使用时需要为该函数提供一个适当的变换矩阵,该矩阵通过getAffineTransform()函数获得。原理如下图所示
    在这里插入图片描述

    展开全文
  • 摄像头获取的图像不是正的,需要先翻转再旋转 以下是解决办法 Mat image0 = new Mat(); Mat image1 = new Mat(); Mat image = new Mat(); cap.Read(image0); //从摄像头获取一张图片 Cv2.Flip(image0, image1, ...

    参考百度的人脸识别源码,用到了OpenCvSharp处理图像
    摄像头获取的图像不是正的,需要先翻转再旋转
    以下是解决办法

    Mat image0 = new Mat();
    Mat image1 = new Mat();
    Mat image = new Mat();
    cap.Read(image0); //从摄像头获取一张图片
    Cv2.Flip(image0, image1, FlipMode.Y); //翻转
    image = MatRotate(image1, 90); //旋转
    
    //C#测试usb摄像头实时人脸检测
    public void usb_video_detect()
    {
    	// 默认电脑自带摄像头,device可能为0,若外接usb摄像头,则device可能为1.
    	int dev = 0;
    	using (var window = new Window("face"))
    	using (VideoCapture cap = VideoCapture.FromCamera(dev))
    	{
    		if (!cap.IsOpened())
    		{
    			Console.WriteLine("open camera error");
    			return;
    		}
    		// Frame image buffer
    		Mat image0 = new Mat();
    		Mat image1 = new Mat();
    		Mat image = new Mat();
    		// When the movie playback reaches end, Mat.data becomes NULL.
    		while (true)
    		{
    			cap.Read(image0); // same as cvQueryFrame
    			Cv2.Flip(image0, image1, FlipMode.Y); //先翻转
    			image = MatRotate(image1, 90); //再旋转
    			if (!image.Empty())
    			{
    				int ilen = 10;//传入的人脸数
    				BDFaceBBox[] info = new BDFaceBBox[ilen];
    				
    				int sizeTrack = Marshal.SizeOf(typeof(BDFaceBBox));
    				IntPtr ptT = Marshal.AllocHGlobal(sizeTrack * ilen);
    			   
    				int faceSize = ilen;//返回人脸数  分配人脸数和检测到人脸数的最小值
    				int curSize = ilen;//当前人脸数 输入分配的人脸数,输出实际检测到的人脸数
    				int type = 0;
    				faceSize = detect(ptT, image.CvPtr, type);
    				for (int index = 0; index < faceSize; index++)
    				{
    					IntPtr ptr = new IntPtr();
    					if (8 == IntPtr.Size)
    					{
    						ptr = (IntPtr)(ptT.ToInt64() + sizeTrack * index);
    					}
    					else if (4 == IntPtr.Size)
    					{
    						ptr = (IntPtr)(ptT.ToInt32() + sizeTrack * index);
    					}
    
    					info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptr, typeof(BDFaceBBox));
    					//face_info[index] = (BDFaceBBox)Marshal.PtrToStructure(info_ptr, typeof(BDFaceBBox));
    					Console.WriteLine("in face detect face_id is {0}:", info[index].index);                        
    
    					Console.WriteLine("in face detect score is:{0:f}", info[index].score);
    					// 角度
    					Console.WriteLine("in face detect mAngle is:{0:f}", info[index].angle);
    					// 人脸宽度
    					Console.WriteLine("in face detect mWidth is:{0:f}", info[index].width);
    					// 中心点X,Y坐标
    					Console.WriteLine("in face detect mCenter_x is:{0:f}", info[index].center_x);
    					Console.WriteLine("in face detect mCenter_y is:{0:f}", info[index].center_y);                           
    				}
    								   
    				FaceDraw.draw_rects(ref image, faceSize, info);
    				Marshal.FreeHGlobal(ptT);
    				window.ShowImage(image);
    				Cv2.WaitKey(1);
    			}
    			else
    			{
    				Console.WriteLine("mat is empty");
    			}
    		}
    	}
    }
    
    
    /// <summary>
    /// 图像旋转
    /// </summary>
    private Mat MatRotate(Mat src, float angle)
    {
    	Mat dst = new Mat();
    	Point2f center = new Point2f(src.Cols / 2, src.Rows / 2);
    	Mat rot = Cv2.GetRotationMatrix2D(center, angle, 1);
    	Size2f s2f = new Size2f(src.Size().Width, src.Size().Height);
    	Rect box = new RotatedRect(new Point2f(0, 0), s2f, angle).BoundingRect();
    	double xx = rot.At<double>(0, 2) + box.Width / 2 - src.Cols / 2;
    	double zz = rot.At<double>(1, 2) + box.Height / 2 - src.Rows / 2;
    	rot.Set(0, 2, xx);
    	rot.Set(1, 2, zz);
    	Cv2.WarpAffine(src, dst, rot, box.Size);
    	return dst;
    }
    
    展开全文
  • Android摄像头预览镜像翻转问题

    千次阅读 2021-06-29 17:23:56
    Android应用默认开启前置摄像头,预览镜像与人物应保持一致 问题描述: 预览镜像与任务动作相反 原因分析: 设置预览镜像坐标未设置正确导致的。 解决方案: 参考文献:显示摄像头 解决方案:首先绘制自己的...

    项目场景:

    Android应用默认开启前置摄像头,预览镜像与人物应保持一致


    问题描述:

    预览镜像与任务动作相反


    原因分析:

    设置预览镜像坐标未设置正确导致的。


    解决方案:

    参考文献:显示摄像头


    解决方案:首先绘制自己的镜像坐标,水平调整X对折得到坐标即为水平镜反镜像

     static final float TEXTURE_COORDS[] = {
                1.0f, 1.0f - 0.0f,
                0.0f, 1.0f - 0.0f,
                1.0f, 1.0f - 1.0f,
                0.0f, 1.0f - 1.0f,
        };
    
    
        /**
         * 修改预览镜像左右翻转问题
         */
        static final float TEXTURE_COORDS_180[] = {
                0.0f, 1.0f,
                1.0f, 1.0f,
                0.0f, 0.0f,
                1.0f, 0.0f,
        };
    

    以此记录!!!

    展开全文
  • 因为自拍的时候一般都习惯性的左右翻转摄像头,这样人往左移,图像中的人脸也会往左移,往右同理。 遇到问题,想到两个方案: 方案一:直接软件处理,使用程序将图像翻转过来。这样简单粗暴,但是会更多的耗费FPGA...
  • **opencv + python实现从摄像头获取视频后,以镜像/水平翻转输出 笔者的配置如下: opencv 4.2.0 python 3.7.6 如图,处理前的 摄像头获取并输出的都是翻转后的视频 处理后的 代码如下: import cv2 import numpy...
  • AForge调用电脑摄像头可以旋转图像
  • 实验介绍此次实验帮助大家利用 OpenCV 去读取摄像头的视频流,你可以直接使用笔记本本身的摄像头,也可以用 USB 连接直接的摄像头。如果你在操作过程中,摄像头读取失败, 实验中还为你提供了几个问题排查步骤。当然...
  • canvas实现摄像头的画面水平翻转问题 1.video现实反转,直接css: -moz-transform:scaleX(-1); -webkit-transform:scaleX(-1); -o-transform:scaleX(-1); transform:scaleX(-1); /IE/ filter:FlipH; 2.canvas画布的...
  • Qt摄像头翻转

    千次阅读 2014-11-24 18:38:16
    最近在研究Qt摄像头, Qt5.2.0 支持的分辨率只有 640*480
  • 前言 最近在做一个小h5页面,通过手机摄像头获取图像通过video播放出来,发现两个...1.前置摄像头成像时,左右颠倒(举左手,视频显示右手) 2.手机旋转成横屏时,人物头像倒立,竖屏正常 3.后置摄像头一切正常 ...
  • 这几天在改前置摄像头,刚才看了csdn上关于此问题的热烈讨论,未得出最终结论。我觉得此问题还是有最优解的。csdn android版主yiyaaixuexi认为,前置camera要求: 缩略图和照片一致,并且与取景相反。 也就是在照相...
  • iOS系统下前置摄像头拍照/录像默认是会沿中间镜像翻转的, 项目用到AVCaptureSession拍照/录像, 需求要使用前置摄像头时不要左右镜像效果, 研究了好久, 谷歌到的都是旋转的, 看到UIImagePicker可以使用transform进行...
  • opencv + python实现从摄像头获取视频后,以镜像/水平翻转输出 笔者的配置如下: opencv 4.2.0 python 3.7.6 如图,处理前的 摄像头获取并输出的都是翻转后的视频 处理后的 代码如下: import cv2 import numpy ...
  • android camera mirror 前置后置相机视频预览时左右镜像,实现镜子效果 基于以下网址实现的android studio项目源代码包,可以直接打开使用 https://blog.csdn.net/mbrose/article/details/80167781 代码做了一...
  • */ //使上下左右翻转 /*memcpy(BChannel + Width * (Height - 1 - i) + Width - 1 - j, imageDataPtr + LineByte * i + 3 * j + 0, 1); memcpy(GChannel + Width * (Height - 1 - i) + Width - 1 - j, ...
  • 我可以选择从前置摄像头切换到后置摄像头,使用后置摄像头拍照时一切都很好。当我用前置摄像头拍照时,它们会被倒置180度。 现在我知道这可能与纵向模式中的方向有关,但是在横向模式中使用它会破坏我的应用程序的...
  • 如何开启前镜头镜像翻转设定iOS 内建相机的前镜头,本来有一个「贴心」的功能,是当你自拍的时候,储存的相片会自动左右翻转,让照片的视角变成「别人看你的角度」。举例来说,用前镜头自拍时,相机里看到的画面是...
  • 因项目预研需要,采用android camera2进行前置、后置摄像头拍照、拍视频,在用前置摄像头进行拍照时,照片预览是正的,保存本地照片也是正的,只不过照片里的内容进行了左右镜像,现在需要将照片里的内容再左右镜像...
  • 通常,镜面的“左右反”被描述为:你在镜子前用右手写字,而镜子中的你正在用左手写字。为什么镜面成像给人感觉...这两天在调试android前置摄像头,今天基本完成,期间想到了这个问题,昨晚终于搞懂……现在努力把思...
  • 我正在构建一个使用摄像头功能的android应用程序。...我知道我可以在保存前翻转图像数据,但我已经在运行4.4(kitkat)的蓝光C 5.0 HD上测试了该代码,并且该手机上的图像数据以正确的方式进行了定向。所以al...
  • opencv-图像翻转问题

    千次阅读 2022-04-20 20:25:22
    图像拍摄的时候,会有一个 rotate 属性,根据相机的摆放不同其值有差别。 opencv 处理图像的时候,会读取这个值,并根据其设置,来对图像进行旋转操作。 但是很多程序本身不支持这个选项,所以会导致 opencv 读出来...
  • 摘要:许多情况下我们需要用到摄像头获取图像,进而处理图像,这篇博文介绍利用pyqt5、OpenCV实现用电脑上连接的摄像头拍照并保存照片。为了使用和后续开发方便,这里利用pyqt5设计了个相机界面,后面将介绍如何实现...
  • 一、打开摄像头import cv2import numpy as npdef video_demo():capture = cv2.VideoCapture(0)#0为电脑内置摄像头while(True):ret, frame = capture.read()#摄像头读取,ret为是否成功打开摄像头,true,false。...
  • // 用于判断前置摄像头还是后置摄像头 private int cameraPosition = 1 ; // 判断前置摄像头 还是后置 private boolean isCheck ; private SurfaceHolder.Callback callback ; // 上下文 ...
  • 文章目录二十一、图像的翻转21.1 quickopencv.h21.2 QuickDemo.cpp21.3 test.cpp二十二、视频文件摄像头使用22.1 quickopencv.h22.2 QuickDemo.cpp22.3 test.cpp二十三、视频处理与保存23.1 quickopencv.h23.2 Quick...
  • vue 项目调取本地摄像头并实现可切换摄像头并拍照生成图片 需求描述 本地连接两个摄像头拍摄量具,需要切换摄像头进行拍照生成图片,并且把图片传输给后台。 解决方法 通过navigator对象 MediaDevices....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,361
精华内容 944
关键字:

如何翻转摄像头左右