本例子借助了dspack包,只是為了方便,不要它也可以,直接呼叫com。使用directshow9的功能。程式須引用directshow9, dspack,dsutil,comctrls,activex單元。具體如下:
var capenum: tsysdevenum;
begin
capenum := tsysdevenum.create(clsid_videoinputdevicecategory);
end;
2、設定亮度、飽和度等
varhr:longint;
pprocamp: iamvideoprocamp;
prop:tvideoprocampproperty;
val:longint;
flags: tvideoprocampflags
begin
hr := capenum.getbasefilter(0).queryinte***ce(iid_iamvideoprocamp, pprocamp);
if (succeeded(hr)) then
begin
pprocamp.set_(prop,val,flags);
end;
end;
其中iamvideoprocamp,tvideoprocampproperty,tvideoprocampflags均為directshow9定義的型別。
tagvideoprocampproperty = (
videoprocamp_brightness,
videoprocamp_contrast,
videoprocamp_hue,
videoprocamp_saturation,
videoprocamp_sharpness,
videoprocamp_gamma,
videoprocamp_colorenable,
videoprocamp_whitebalance,
videoprocamp_backlightcompensation,
videoprocamp_gain
);可用這裡面的值指定要設定的引數。
tagvideoprocampflags = (
videoprocamp_flags_invalid_0,
videoprocamp_flags_manual,
videoprocamp_flags_auto
videoprocamp_flags_manual = 1,
videoprocamp_flags_auto
);指定是手動設定還是自動設定,奇怪的是用videoprocamp_flags_manual值的話設定的是自動,要手動設定要用videoprocamp_flags_auto。
3、**度設定與其他不同,使用不同的介面
var hr:longint;
pprocamc: iamcameracontrol;
val:longint;
flags:tcameracontrolflags;
begin
hr := capenum.getbasefilter(0).queryinte***ce(iamcameracontrol, pprocamc);
if (succeeded(hr)) then
begin
pprocamc.set_(cameracontrol_exposure,val,flags);
end;
end;
引數可觀察directshow9單元。
攝像頭引數的設定
f專案進行到最終介面設計階段了。在把320x240解析度的攝像頭影象放到640x480的視窗之後,解析度很低,決定新增讓使用者選擇解析度的介面。先看了directx自帶的amcap sample,在裡面找到這樣一段 先是用icapturegraphbuilder2 findinte ce將captu...
監控攝像頭引數
筒形和球型 焦距無法更改,貴一些的攝像頭可以調焦 攝像頭個數 單位時間資料流量,單位bps 有dc直流電源供電和poe供電兩種,poe供電相對於直流電源供電,只需連線poe交換機或poe網路硬碟錄影機即可供電,施工和維護更加簡單方便。非poe供電 每個攝像頭需要電線 網線 pvc套管 插座 安防電源...
監控攝像頭引數
筒形和球型 焦距無法更改,貴一些的攝像頭可以調焦 攝像頭個數 單位時間資料流量,單位bps 有dc直流電源供電和poe供電兩種,poe供電相對於直流電源供電,只需連線poe交換機或poe網路硬碟錄影機即可供電,施工和維護更加簡單方便。非poe供電 每個攝像頭需要電線 網線 pvc套管 插座 安防電源...