标签: camera

C++ Opencv 不同分辨率相机标定

我的相机有不同的分辨率 1280*480 640*240 320*120

我使用Opencv3的算法来校准分辨率为1280*480的相机,并得到了该分辨率的相机矩阵(fx fy cx cy)和畸变矩阵(k1 k2 p1 p2 k3)。

但现在我想用这些相机矩阵和畸变矩阵来校准分辨率为320*120的相机。我不知道如何将分辨率1280*480的这两个矩阵应用到320*120的分辨率。PS我没有直接标定320*120分辨率的相机,因为图像太小,Opencv的算法找不到棋盘。

我想知道如果我将分辨率 1280*480 更改为 320*120,相机矩阵 (fx fy cx cy) 和畸变矩阵 (k1 k2 p1 p2 k3) 将如何变化。

opencv的算法如下: http://docs.opencv.org/3.0-beta/doc/tutorials/calib3d/camera_calibration/camera_calibration.html

c++ camera opencv matrix

4
推荐指数
1
解决办法
5967
查看次数

iOS - 创建多个延时实时相机预览视图

我已经进行了大量研究,但由于多种原因尚未找到可行的解决方案,我将在下面概述。


问题

在我的 iOS 应用程序中,我需要三个视图来无限期地显示设备相机的延迟实时预览。

例如,视图1将显示相机视图,延迟5秒,视图2将显示相同的相机视图,延迟20秒,视图3将显示相同的相机视图,延迟30秒。

这将用于记录您自己执行某种活动,例如锻炼练习,然后在几秒钟后观察自己,以完善您的特定练习形式。

尝试过的解决方案

我尝试并研究了几种不同的解决方案,但都有问题。

1. 使用AVFoundationAVCaptureMovieFileOutput

  • 使用AVCaptureSessionAVCaptureMovieFileOutput将短片录制到设备存储中。需要短剪辑,因为您无法播放 URL 中的视频,并同时写入同一 URL。
  • 有 3AVPlayerAVPlayerLayer实例,全部按所需的时间延迟播放录制的短片。
  • 问题:
    1. 使用 切换剪辑时AVPlayer.replaceCurrentItem(_:),剪辑之间存在非常明显的延迟。这需要一个平稳的过渡。
    2. 虽然很旧,但这里的评论建议AVPlayer由于设备限制不要创建多个实例。我还没有找到证实或否认这一说法的信息。E:根据 Jake G 的评论 -AVPlayer对于 iPhone 5 及更新版本来说 10 次就可以了。

2. 使用AVFoundationAVCaptureVideoDataOutput

  • 使用AVCaptureSessionAVCaptureVideoDataOutput来通过委托方法流式传输和处理摄像机输入的每一帧didOutputSampleBuffer
  • 在 OpenGL 视图上绘制每个帧(例如GLKViewWithBounds)。AVPlayer这解决了来自 的多个实例的问题Solution 1.
  • 问题:存储每个帧以便稍后显示需要大量内存(这在 iOS 设备上不可行)或磁盘空间。如果我想以每秒 30 …

camera video-capture video-processing avfoundation ios

4
推荐指数
1
解决办法
1403
查看次数

React Native - 相机中的叠加

我正在开发一个反应本机应用程序,我会拍一些照片。

我的相机上需要有一个网格,当用户拍照时,我的应用程序会将图像和网格保存在一起。

有谁知道我如何解决这个问题?

谢谢

下面的这个链接正好显示了我需要的

https://pt.stackoverflow.com/questions/362327/react-native-overlay-em-camera

camera android ios camera-overlay react-native

4
推荐指数
1
解决办法
2857
查看次数

如何在flutter中检索sqlite数据库中的图像数据?

我想在 sqlite 中检索图像数据。我使用下面的代码

var image = await ImagePicker.pickImage(source: imageSource);
List<int> bytes = await image.readAsBytes();
Run Code Online (Sandbox Code Playgroud)

我想拍摄图像并保存后sqlite。是否可以从sqlite数据库获取和设置图像?

sqlite camera image flutter

4
推荐指数
1
解决办法
9080
查看次数

有没有办法使用 Expo React Native 检测图像中的文本?

我正在使用ExpoReact Native并且我希望能够从图像中检测文本。我可以使用一个包来实现这一目标吗?

我用来Expo camera module拍摄图片并将 URI 提供给文本检测器,我尝试使用react-native-text-Detector,但收到错误消息,指出函数 detectorFromUri 未定义。我也尝试过 tesserect.js,但导入失败,并显示“无法解析变量位置”。

await this.camera.takePictureAsync(options).then(photo => {
       photo.exif.Orientation = 1;
                //console.log(photo.uri);
        const visionResp = await RNTextDetector.detectFromUri(photo.uri);
        if (!(visionResp && visionResp.length > 0)) {
            throw "UNMATCHED";
        }
        console.log(visionResp);
});
Run Code Online (Sandbox Code Playgroud)

我期望 VisionResp 记录检测返回的结果,但我得到的是undefined is not an object (evaluating '_reactNativeTextDetector.default.detectFromUri')

camera tesseract react-native expo

4
推荐指数
1
解决办法
6572
查看次数

使用 Aruco 标记获取相机位置和旋转

我使用该函数cv.aruco.estimatePoseSingleMarkers()来获取rvectvec。使用这两个向量如何获得相对于 Aruco 标记的相机姿势?

while (True):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    aruco_dict = aruco.Dictionary_get(aruco.DICT_ARUCO_ORIGINAL)
    parameters = aruco.DetectorParameters_create()

    corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)

    font = cv2.FONT_HERSHEY_SIMPLEX 

    if np.all(ids != None):
        # POSE ESTIMATION
        rvec, tvec,_ = aruco.estimatePoseSingleMarkers(corners[0], 0.1, mtx, dist) 
Run Code Online (Sandbox Code Playgroud)

python camera opencv aruco

4
推荐指数
1
解决办法
6950
查看次数

三.JS更新透视相机的fov值并保持相同的相机距离

我想在动画过程中修改相机的 FOV 值。不幸的是,一旦我实现了 FOV 值,我就可以观察到我的场景变得更小。

所以我一直想知道,FOV 值和透视相机的距离位置之间的数学联系是什么?

这个想法是在 FOV 值发生变化时拥有相同的场景(通过修改相机位置来实现相同的大小)。

非常感谢。

编辑1:

这是说明我的问题的片段:当我实现相机的 FOV 值(从 4 到 45)时,我的方块和相机之间的距离发生了变化。我该如何预防呢?

        let W = window.innerWidth, H = window.innerHeight;
        
        let renderer = new THREE.WebGLRenderer( { antialias: true, alpha: true } );
        renderer.setPixelRatio( window.devicePixelRatio );
        renderer.setSize( W, H );

        document.body.appendChild( renderer.domElement );

        let camera = new THREE.PerspectiveCamera( 4, W/H, 1, 100 );
        let scene = new THREE.Scene();

        camera.position.set(0,0,14);
        camera.lookAt(0,0,0);

        let geo = new THREE.BoxGeometry(0.5, 0.5, 0.5);
        let mat = new THREE.MeshNormalMaterial();
        let mesh = new …
Run Code Online (Sandbox Code Playgroud)

javascript camera three.js

4
推荐指数
1
解决办法
6706
查看次数

使用 OpenCV python 查看 raw10 位 USB 摄像头

我正在尝试在 OpenCV 4.2.0 Python 3.5.6 中查看 Omnivision OV7251相机的输出。相机输出是 10 位原始灰度数据,我相信它以 16 位字右对齐。

当我使用这个 OpenCV 代码时:

import cv2

cam2 = cv2.VideoCapture(0)
cam2.set(3, 640)            # horizontal pixels
cam2.set(4, 480)            # vertical pixels

while True:
    b, frame = cam2.read()

    if b:
        cv2.imshow("Video", frame)

        k = cv2.waitKey(5)

        if k & 0xFF == 27:
            cam2.release()
            cv2.destroyAllWindows()
            break
Run Code Online (Sandbox Code Playgroud)

这是我得到的图像:

OpenCV 原始 10 位 OV7251

大概发生的情况是 OpenCV 使用错误的过程从 10 位原始数据转换为 RGB,认为它是某种 YUV 或其他东西。

有什么办法我可以:

  • 告诉 OpenCV 相机正确的数据格式,以便它正确进行转换?
  • 获取原始相机数据以便我可以手动进行转换?

python camera opencv computer-vision color-space

4
推荐指数
1
解决办法
5410
查看次数

如何在Android中正确使用camera2中的新createCaptureSession()?

已弃用的createCaptureSession()方法在旧代码中按以下方式使用:

cameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {
     @Override
     public void onConfigured(@NonNull CameraCaptureSession session) {
         if (mycameraDevice == null){
             return;
         }
         cameraCaptureSession = session;
         if (cameraDevice == null){
             return;
         }
         captureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
         try {
             cameraCaptureSession.setRepeatingRequest(captureRequestBuilder.build(), null, mBackgroundHandler);
         } catch (CameraAccessException e) {
             e.printStackTrace();
         }
     }
     @Override
     public void onConfigureFailed(@NonNull CameraCaptureSession session) {
         Toast.makeText(MainActivity.this, "Configuration Failed! :(", Toast.LENGTH_SHORT).show();
     }
 }, null); 
Run Code Online (Sandbox Code Playgroud)

我还在 StackOverflow 上发现了这个问题,其中我们必须执行以下操作:

SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, Collections.singletonList(outputConfiguration), new HandlerExecutor(mCameraHandler.getLooper()), mCameraSessionListener);
cameraDevice.createCaptureSession(sessionConfiguration);
Run Code Online (Sandbox Code Playgroud)

首先,这是正确的使用方法吗?如果是,那么outputConfiguration是什么以及如何正确声明它?在 Youtube 教程中,从未创建任何输出配置!

那么我需要进行哪些更改才能再次使用该代码?

camera android android-camera2

4
推荐指数
1
解决办法
4634
查看次数

flutter 应用程序中的相机问题(&gt; Android 不支持所选的 imageFormatGroup。默认为 yuv420)

我在应用程序中集成摄影功能时遇到问题。我被问到是否允许访问相机,但之后除了这个错误之外没有任何反应:

W/Camera (26849):Android 不支持所选的 imageFormatGroup。默认为 yuv420

I/CameraManagerGlobal(26849):相机 0 面向客户端 CAMERA_FACING_BACK 状态,现在为 CAMERA_STATE_OPEN...

这是我的代码:

class FaultReporting extends StatefulWidget {
  @override
  _FaultReportingState createState()=> _FaultReportingState();
}

class _FaultReportingState extends State<FaultReporting>{
  bool isReady=false;
  List<CameraDescription> cameras;
  CameraController camController;

  @override
  void initState() {
    super.initState();
    setupCameras();
  }

  Future<void> setupCameras() async {
    try {
      cameras = await availableCameras();
      camController = new CameraController(cameras[0], ResolutionPreset.medium);
      await camController.initialize();
    } on CameraException catch (_) {
      setState(() {
        isReady = false;
      });
    }
    setState(() {
      isReady = true;
    });
  }

...

child: ElevatedButton( …
Run Code Online (Sandbox Code Playgroud)

camera dart flutter

4
推荐指数
1
解决办法
1万
查看次数