标签: camera

如何使用 OpenGL/SDL 让我的鼠标像 FPS 一样控制相机?

我已经使用 OpenGL/SDL 创建了这个基本的 3D 演示。我处理了键盘回调,所以我可以使用 'a' 和 's' 左右“扫射”,并使用 's' 和 'w' 向前和向后移动。

但是,我现在想这样做,以便我可以根据我的鼠标移动来控制我的相机“看”的方向。就像在 FPS 射击游戏中一样,当您在它周围移动鼠标时,它会使相机向各个方向环顾四周。

有谁知道我如何在移动鼠标时利用鼠标回调来正确“指向”相机类?

#include "SDL.h"
#include "Camera.h"

Camera cam;
Scene scn;

//<<<<<<<<<<<<<<<<<myKeyboard>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void myKeyboard(unsigned char key, int x, int y)
{
  switch(key)
    {
    case 's': cam.slide(0.0, 0.0, 0.2); break;
    case 'w': cam.slide(0.0, 0.0, -0.2); break;
    case 'a': cam.yaw(-1.0); break;
    case 'd': cam.yaw(1.0); break;


    case 27: exit(0);
    }
  glClear(GL_COLOR_BUFFER_BIT);
  glutPostRedisplay();
}

void displaySDL( void )
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    scn.drawSceneOpenGL();
    glFlush();
    glutSwapBuffers();
}

int main( int argc, char* argv[] …
Run Code Online (Sandbox Code Playgroud)

c++ opengl camera sdl

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

从 RGB 图像确定照度

有没有办法将相机(网络相机或手机相机)用作测光表?手机摄像头可以抓取图像并以 RGB 格式获取数据,但有没有人尝试过确定照度值(以勒克斯为单位)?

我知道没有公式可以做到这一点(如果我错了,请纠正我),但是是否可以对其进行建模并获得照度的近似值?

rgb camera image colors image-processing

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

访问Swift 4中的前置摄像头

我在相机应用程序中有这个

session.sessionPreset = AVCaptureSession.Preset.high
camera = AVCaptureDevice.default(for: AVMediaType.video)

    do {
        let cameraCaptureInput = try AVCaptureDeviceInput(device: camera!)
        cameraCaptureOutput = AVCapturePhotoOutput()

        session.addInput(cameraCaptureInput)
        session.addOutput(cameraCaptureOutput!)

    } catch {
        print(error.localizedDescription)
    }
Run Code Online (Sandbox Code Playgroud)

如何访问前置摄像头?

camera avfoundation swift

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

错误找不到活动来处理Intent act = android.media.action.IMAGE_CAPTURE

我拥有在<api 23中可用的继承代码。由于暴露的文件安全性问题,我不得不对其进行升级以与最新的api一起使用,并且它使我现在必须使用FileProvider。没什么 但是,现在相机不起作用(并且不一定是由于FileProvider所致,由于升级了api,它恰好在需要使用FileProvider的同时停止了工作)

该代码死于MediaStore.ACTION_IMAGE_CAPTURE意图的创建意图调用,并显示以下错误:

android.content.ActivityNotFoundException:未找到处理意图的活动{act = android.media.action.IMAGE_CAPTURE dat = content://com.company.appname/external_files/temp.jpg flg = 0x1}

我已经做了很多搜索,但是每个人(尤其是到目前为止的stackoverflow)似乎都认为添加代码来检查是否存在相机可以解决此问题,但事实并非如此。如果未检测到相机,则只是不运行代码的检查。我用来测试的所有设备都有相机。我已经在Android模拟器上进行了调试(并通过使用默认照相机应用程序对自己的照片进行拍照,验证了模拟照相机已连接到笔记本电脑照相机)以及具有前置和后置照相机的手机,两者均能正常工作。因此,请没有解决该问题的答案。我知道我有相机,不需要检查。我需要帮助来确定为什么我的代码没有找到MediaStore.ACTION_IMAGE_CAPTURE的意图。

AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
Run Code Online (Sandbox Code Playgroud)

<provider
    android:name=".Providers.GenericFileProvider"
    android:authorities="com.company.myapp"
    android:exported="false"
    android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>
Run Code Online (Sandbox Code Playgroud)

provider_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

File f = new File(Environment.getExternalStorageDirectory(), "temp.jpg");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, 
    FileProvider.getUriForFile(MainActivity.this, AUTHORITY, f));
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)

启动活动时,代码在最后一行抛出异常。因为这是继承的代码,所以我很想废弃它们用于相机捕获并重新开始的内容,但是在将其升级为> api 23之前,这些代码曾经可以工作。

只是为了方便起见,升级之前的上一个电话看起来像

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
Run Code Online (Sandbox Code Playgroud)

但这不再起作用(由于暴露了文件uri而被api阻止了)

有谁发现如何使这项工作?

风格笔记

为了简洁起见,我编辑了代码,生产代码中包含异常处理。

java camera android image

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

如何显示片段中的相机?

应用程序的目的是基本比较相机看到的与图库中的图像.我不知道哪个控件可以在不打开默认系统应用程序的情况下访问摄像头.

我知道这个应用程序在分屏手机(一侧是摄像头,另一侧是图库)上没用,但是打算用于没有牛轧糖功能的手机(棉花糖或棒棒糖).

我见过一些显示相机的应用程序,如条形码阅读器和一些快速照片编辑器.

在此输入图像描述

java camera android

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

expo camera takePictureAsync ImageManipulator

我有一个这样的片段

takePicture = async function() {
        if (this.camera) {
            this.camera
                .takePictureAsync()
                .then(data => {
                    FileSystem.moveAsync({
                        from: data.uri,
                        to: `${FileSystem.documentDirectory}photos/Photo_${
                            this.state.photoId
                        }.jpg`
                    }).then(() => {
                        this.setState({
                            photoId: this.state.photoId + 1
                        });
                        Vibration.vibrate();
                    });
                });
        }
    };
Run Code Online (Sandbox Code Playgroud)

现在我的问题是我不知道如何将ImageManipulator插入此功能.我的目的是在takePictureAsync()之后,照片将被调整为108x192,然后这张照片将被移动到documentDirectory.非常感谢

camera react-native expo

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

查看控制器需要5-10秒才能显示

我正在使用swift 4并有一个应用程序,人们可以通过我的应用程序打开他们的手机相机.我有一个ViewController被调用CameraController,它具有默认值UIView,我在其上面有一个视图,CameraView它显示用户摄像头和其他按钮.

当我点击其中一个按钮时,它会通过segue(PlacesController)将我带到另一个视图控制器.当我解雇时,PlacesController我回到CameraController现在,子视图现在需要大约8或10秒再次显示.

在某些情况下我可以在保持当前子视图的同时转到另一个控制器吗?

问题是,当我进入我的segue控制器PlaceController然后回到我的状态CameraController时,相机和子层变得可见之前需要大约8或10秒.特别是这个代码下面我想知道我是否可以保持我的子层仍然运行,因为它等待10秒显示太多了.

self.CameraView.layer.insertSublayer(previewLayer!, at: 0)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

class CameraController: UIViewController {
    @IBOutlet weak var CameraView: UIView!
     var previewLayer: AVCaptureVideoPreviewLayer?
     let captureSession = AVCaptureSession()


  override func viewDidLoad() {
        super.viewDidLoad()


    }
 override func viewDidAppear(_ animated: Bool) {
           DispatchQueue.main.async {
             self.beginSession()
        }

    func beginSession() {
   // gets the camera showing and displays buttons on top of it
        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        self.CameraView.layer.insertSublayer(previewLayer!, at: …
Run Code Online (Sandbox Code Playgroud)

camera ios avcapturesession segue swift

1
推荐指数
2
解决办法
3015
查看次数

iOS强制使用新的隐私设置重启应用

如果用户更改了Camera权限,则应用程序将在后台崩溃,并显示调试器发出的消息:由于信号9而终止。

他们现在可以打开应用程序,并且权限正确,但是需要从头开始。有谁知道如何解决这一问题?

我需要提示用户通过UIAlertController更改我的应用程序的相机权限。该警报具有以下操作:

alert.addAction(UIAlertAction(title: "Open Settings", style: .default, handler: { (action) -> Void in

    guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
        return
    }

    if UIApplication.shared.canOpenURL(settingsUrl) {
        DispatchQueue.main.async(execute: {
            UIApplication.shared.openURL(settingsUrl)
        })
    }
}))
Run Code Online (Sandbox Code Playgroud)

settings camera ios swift

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

我可以在未经许可的情况下访问iOS照片库

我正在尝试访问我正在编写的新应用程序的照片库。我有一个actionSheet,可让用户在相机和照片库之间进行选择。打开相机时,它会询问用户许可,但是打开照片库时,它不会。尽管如此,它仍然将用户带到他们的照片库。我在info.plist中专门引用了它,但是仍然没有区别。有什么帮助吗?我的代码:

@IBAction func allowAccessToPhotos(_ sender: Any) {

    let imagePickerController = UIImagePickerController()
    imagePickerController.delegate = self

    let actionSheet = UIAlertController(title: "Photo Source", message: "Choose a Source", preferredStyle: .actionSheet)

    actionSheet.addAction(UIAlertAction(title: "Photo Library", style: .default, handler: { (action:UIAlertAction) in imagePickerController.sourceType = .photoLibrary
        self.present(imagePickerController, animated: true, completion: nil)

    }))

    actionSheet.addAction(UIAlertAction(title: "Camera", style: .default, handler: { (action:UIAlertAction) in imagePickerController.sourceType = .camera
        self.present(imagePickerController, animated: true, completion: nil)

    }))

    actionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

    self.present(actionSheet, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

camera plist ios swift

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

为什么我的FPS相机会滚动?使用euler角度(不是四元数)在Python中实现

我正在尝试生成一个像FPS相机一样的视图矩阵,但我正在滚动.共享我的python代码,以防有人发现问题所在:

import numpy as np

class Camera():
    def __init__(self):
        self.sens = np.array([0.002, 0.002])  # mouse sensitivity (x, y)
        self.angpos = np.array([0.0, 0.0])  # (pitch, yaw)

    def mouse_move(self, pos, rel):
        self.angpos = rel[::-1]*self.sens  # mouse relative motion (delta-x, delta-y)
        ya = self.angpos[1]
        yrot = np.array([
            [ np.cos(ya),  0.0,    np.sin(ya),   0.0],
            [ 0.0,         1.0,    0.0,          0.0],
            [-np.sin(ya),  0.0,    np.cos(ya),   0.0],
            [0.0,          0.0,    0.0,          1.0]
        ])

        xa = self.angpos[0]
        xrot = np.array([
            [ 1.0,    0.0,          0.0,          0.0 ],
            [ 0.0,    np.cos(xa),  -np.sin(xa),   0.0 …
Run Code Online (Sandbox Code Playgroud)

python opengl camera rotation

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