Tag: camera

Windows(手机)8.1相机使用

我正在创建一个Windows Universal应用程序。 我希望用户能够上传图片,用户应该可以选择当场拍摄并发送。 我使用MediaCapture api工作。 但是我似乎只能使用一台摄像机,例如,如果我的手机有前置摄像头和后置摄像头,则仅使用前置摄像头。 我怎样才能切换正在使用的相机? 我曾经读过一些关于使用这样的东西的东西: private static async Task GetCameraID(Windows.Devices.Enumeration.Panel desired) { DeviceInformation deviceID = (await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture)) .FirstOrDefault(x => x.EnclosureLocation != null && x.EnclosureLocation.Panel == desired); return deviceID; } 但是这总是为我返回null,因为deviceID始终为null。 或者可以选择控制应用程序拍摄照片并将拍摄的照片返回给我的应用程序吗? 我找到了以下内容,但它不适用于Windows Universal应用程序: http : //msdn.microsoft.com/en-us/library/windows/apps/hh394006(v = vs.105).aspx

相机旋转与任意平面对齐

我认为对于相机来说,这是一个相当简单的场景,但我的穴居人大脑拒绝思考任何超过两个维度的东西。 我的3D相机需要在物体后面对齐。 这个物体可以粘在任何表面上,因此相机对“向上”的概念可以是任意向量。 它与这个问题非常相似,但由于我不直接控制’播放器’对象,而是尝试使用CreateLookAt,我无法理解解决方案: 如何在使用四元数相机时计算旋转? 为了简化测试,我们假设对象在球体上。 我目前有: 目标对象在3D空间中的绝对位置。 单位向量,表示对象当前所在表面的法线。 在这种情况下,球体上三角形的法线。 X和Y角描述了摄像机应如何绕物体运行。 我相信这就是所需要的,但我不确定如何以一种有效的方式将它们组合在一起。 我知道我需要通过对象来转换角度相机,我最好的尝试如下: Matrix orientation = Matrix.CreateRotationY(OrbitYaw) * Matrix.CreateRotationX(OrbitPitch); orientation.Up = CurrentNormal; orientation.Right = Vector3.Cross(orientation.Forward, orientation.Up); orientation.Right = Vector3.Normalize(orientation.Right); orientation.Forward = Vector3.Cross(orientation.Up, orientation.Right); orientation.Forward = Vector3.Normalize(orientation.Forward); Vector3 Target = ObjectPosition; Vector3 Position = Vector3.Transform(new Vector3(0,50,0), orientation); Matrix View = Matrix.CreateLookAt(Position, Target, CurrentNormal); 定位代码似乎是正确的,但由于第二个问题,很难分辨:相机在位置变化时似乎“滚动”。 这是有道理的 – […]

MediaCapture StartPreviewAsync失败

我正在尝试从我的UWP应用程序中的相机开始video预览捕获,但StartPreviewAsync会抛出exception 示例代码: MediaCapture mc = new MediaCapture(); await mc.InitializeAsync(); await mc.StartPreviewAsync();

.Net MTP / PTP包装器?

我正在写一个爱好项目来处理相机上的文件。 以前我发现相机和FolderBrowserDialog有问题 。 我认为讨厌的是相机正在使用MTP或PTP(图片传输协议而不是点对点)。 为了更加无缝地与相机连接,我想使用PTP或MTP来访问相机。 是否有.Net人可以推荐的MTP / PTP包装器? 如果可能的话,我热衷于避免编写自己的或涉及非托管代码。

处理多个摄像头捕获UWP

我正在使用Universal应用程序,让我们为每个摄像头捕获一个图像(两个或更多)。 那么我们有什么方法可以管理所有相机捕获流砂过程吗? 我刚刚在MSDN中找到了有关单个摄像头处理的教程。 我发现了一些关于在Winforms中管理多个IP摄像机的文章,但没有任何关于UWP的文章。

用于网络流的虚拟摄像机/直接显示filter

我正在使用Flash Live Encoder。 它使用相机来播放video。 支持论坛说我可以创建自定义直接显示filter并流式传输我需要的数据。 我不明白直接显示filter将如何显示在实时编码器的源列表中。 我尝试使用一些商业虚拟相机,它工作正常,但它不能使用网络流源。 摘要。 我有几个网络流。 我认为我必须为每个人创建虚拟摄像头。 但是,如果我在C#上找到带有直接显示filter的示例,我找不到虚拟相机。

打开/关闭闪光灯

好的,我的问题很简单。 我设法打开闪光灯(并保持打开)。 但是,我仍然不确定如何关闭它(笑)。 这是我的代码: var sensorLocation = CameraSensorLocation.Back; try { // get the AudioViceoCaptureDevice var avDevice = await AudioVideoCaptureDevice.OpenAsync(sensorLocation, AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensorLocation).First()); // turn flashlight on var supportedCameraModes = AudioVideoCaptureDevice .GetSupportedPropertyValues(sensorLocation, KnownCameraAudioVideoProperties.VideoTorchMode); if (supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On)) { avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On); // set flash power to maxinum avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchPower, AudioVideoCaptureDevice.GetSupportedPropertyRange(sensorLocation, KnownCameraAudioVideoProperties.VideoTorchPower).Max); } else { turnWhiteScreen(true); } } catch (Exception ex) { // […]

Windows Phone 8.1相机初始化 – 访问被拒绝的例外

使用适用于Windows Phone的8.1 ​​MediaCapture类。 宣布了“音频”和“网络摄像头”的function,其中90%是exception的原因。 Kicker是,它在WP模拟器中完美运行,但在实际设备上中断。 确切的例外是: 我已经添加了大量的检查,以确保我们没有重新初始化已经初始化的相机或尝试在初始化之前阅读等等(因为我认为问题是由引起的)所以它不太可能是那样的。 private async Task InitializeCameraAsync() { if (_isInitialized) { Debug.WriteLine(“Skipping unnecessary initialization”); return; } Debug.WriteLine(“Initializing camera media capture…”); _deviceCapture = new MediaCapture(); await _deviceCapture.InitializeAsync(new MediaCaptureInitializationSettings { VideoDeviceId = _cameraInfoCollection[_currentVideoDevice].Id, PhotoCaptureSource = PhotoCaptureSource.VideoPreview, AudioDeviceId = _microphoneInfoCollection[_currentAudioDevice].Id StreamingCaptureMode = StreamingCaptureMode.Video }); Debug.WriteLine(“Initialized camera media capture!”); // For code completion only, unlikely […]

将相机图像渲染到WPF图像控件

我有一个uEye相机,我以1000毫秒的间隔拍摄图像的快照,我想在WPF Image控制中像这样渲染它们 Bitmap MyBitmap; // get geometry of uEye image buffer int width = 0, height = 0, bitspp = 0, pitch = 0, bytespp = 0; long imagesize = 0; m_uEye.InquireImageMem(m_pCurMem, GetImageID(m_pCurMem), ref width, ref height, ref bitspp, ref pitch); bytespp = (bitspp + 1) / 8; imagesize = width * height * bytespp; […]

如何初始化AForge网络摄像头

我尝试使用Aforge编写一个小的代码来捕获一个框架我引用了Aforge.dll和AForge.Video.DirectShow.dll代码如下,但我做错了。 警告我得到“名称videoDevices在当前上下文中不存在。我认为它有关于我尝试创建该变量的位置,但我不确定在哪里放置该按钮的代码以使其初始化。错误在visual studio中显示为对象“videoDevices”下的红线 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AForge; using AForge.Video.DirectShow; namespace AforgeCam { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count == 0) throw new […]