aforge 相机标定_C# Aforge设置摄像头视频属性和控制属性

本文介绍了如何使用AForge库在C#中调用Windows摄像头属性设置窗口,并展示了如何通过源码扩展来设置摄像头的亮度、对比度等属性。通过修改IAMVideoProcAmp.cs、VideoCaptureDevice.cs和VideoProcAmpProperty.cs文件,添加方法以实现对摄像头的自定义控制。
摘要由CSDN通过智能技术生成

修改后的代码:github

一、调用windows自身摄像头属性设置窗口

使用VideoCaptureDevice对象的DisplayPropertyPage(IntPtr parentWindow)方法即可,以下是从Aforge源码里找到的调用api方式:

///

/// Invokes a new property frame, that is, a property sheet dialog box.

///

///

/// Parent window of property sheet dialog box.

/// Horizontal position for dialog box.

/// Vertical position for dialog box.

/// Dialog box caption.

/// Number of object pointers in ppUnk.

/// Pointer to the objects for property sheet.

/// Number of property pages in lpPageClsID.

/// Array of CLSIDs for each property page.

/// Locale identifier for property sheet locale.

/// Reserved.

/// Reserved.

///

/// Returns S_OK on success.

///

[DllImport( "oleaut32.dll" )]

public static extern int OleCreatePropertyFrame(

IntPtr hwndOwner,

int x,

int y,

[MarshalAs( UnmanagedType.LPWStr )] string caption,

int cObjects,

[MarshalAs( UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown )]

ref object ppUnk,

int cPages,

IntPtr lpPageClsID,

int lcid,

int dwReserved,

IntPtr lpvReserved );

二、通过代码自定义设置摄像头属性

aforge发布版只封装了对摄像头控制属性(缩放、焦点、曝光等)的设置方法,要想设置亮度、对比度这些属性,需要在源码上添加功能。

有三个文件,都是Video.DirectShow项目下的:IAMVideoProcAmp.cs,VideoCaptureDevice.cs,VideoProcAmpProperty.cs

IAMVideoProcAmp.cs声明了几个调用com对象的方法,放在Internals文件夹下

// AForge Direct Show Library

// AForge.NET framework

// http://www.aforgenet.com/framework/

//

// Copyright © AForge.NET, 2009-2013

// contacts@aforgenet.com

//

namespace AForge.Video.DirectShow.Internals

{

using System;

using System.Runtime.InteropServices;

///

/// The IAMVideoProcAmp interface controls camera settings such as brightness, contrast, hue,

/// or saturation. To obtain this interface, query the filter that controls the camera.

///

[ComImport,

Guid("C6E13360-30AC-11D0-A18C-00A0C9118956"),

Int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值