delphi Dspack 分辨率 USB摄像头 保存

linzhen6790 2015-11-01 09:28:26
delphi Dspack 分辨率

procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
// 读取系统中的视频输入设备
SysDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
if SysDev.CountFilters > 0 then
for i := 0 to SysDev.CountFilters - 1 do
begin
Listbox1.Items.Add(SysDev.Filters[i].FriendlyName)
end;
end;


procedure TForm1.ListBox1Click(Sender: TObject); //选择摄像头
begin
FilterGraph1.ClearGraph;
FilterGraph1.Active := false;
//设filter为所选视频输入设备
Filter1.BaseFilter.Moniker := SysDev.GetMoniker(Listbox1.ItemIndex);
FilterGraph1.Active := true;
// 打开所选的视频输入设备
with FilterGraph1 as ICaptureGraphBuilder2 do
// RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter1 as IBaseFilter, nil, VideoWindow1 as IbaseFilter);
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter1 as IBaseFilter, SampleGrabber1 as IBaseFilter, VideoWindow1 as IbaseFilter);
// 显示出来
FilterGraph1.Play;
end;


procedure TForm1.suiButton1Click(Sender: TObject);  //拍照保存
var
ABitmap: TBitmap;
AJpgmap: TJPEGImage;
photo: string;
begin
photo :=label3.Caption+'-'+FormatDateTime('hh', Now)+FormatDateTime('nn', Now)+FormatDateTime('ss', Now);
photo :=label4.Caption+photo+'.jpg';
label5.Caption:=photo;
// photo:=ExtractFilePath(Application.ExeName)+'photo\'+photo+'.jpg';
ABitmap := TBitmap.Create;
AJpgmap := TJPEGImage.Create;
try
// SampleGrabber1.GetBitmap(ABitmap);
SampleGrabber1.GetBitmap(Image1.Picture.Bitmap);
// AJpgmap.Assign(ABitmap);
AJpgmap.Assign(Image1.Picture.Bitmap);
AJpgmap.SaveToFile(photo);
Image1.Picture.LoadFromFile(photo);
finally
ABitmap.Free;
AJpgmap.Free;
end;
end;

上面为程序的为部分代码,摄像头为2个,一个30W最高分辨率为640X480,一个是100W HD最高分辨率为1920X1080



不管我选择哪一个摄像头,拍照保存了图片全部都是640X480


怎么设置为,拍照了时候为摄像头的最高分辨率 ,代码要怎么写,或者,可以自己选择拍照分辨率




...全文
6567 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gogusoft 2019-08-14
  • 打赏
  • 举报
回复
请问大家图像旋转90度咋实现啊,谢谢
gogusoft 2019-08-14
  • 打赏
  • 举报
回复
@lyhoo163 请问你发的那个界面的DEMO在哪里下载啊
爱凯特的威廉 2016-10-11
  • 打赏
  • 举报
回复
谢谢你的回复,找到原因了,是CAPPRO.EXE 控件导致的,安装时有几个选项不选中就可以了。
爱凯特的威廉 2016-10-08
  • 打赏
  • 举报
回复
视频 总有 www.pegasusimaging.com 怎么去掉
npkaida 2016-10-08
  • 打赏
  • 举报
回复
引用
视频 总有 www.pegasusimaging.com 怎么去掉
下载含全部源码的控件重新安装DSPACK: DSPACK v2.34 for Delphi7 http://download.csdn.net/detail/npkaida/9647422 DSPack for D10.1 Berlin http://download.csdn.net/detail/npkaida/9647418
linzhen6790 2015-11-02
  • 打赏
  • 举报
回复
过来看一看,看有没有大神帮看一下
linzhen6790 2015-11-02
  • 打赏
  • 举报
回复
过来看一看,看有没有大神帮看一下
lyhoo163 2015-11-02
  • 打赏
  • 举报
回复

这是程序界面。选择分辨率,保存即可。
lyhoo163 2015-11-02
  • 打赏
  • 举报
回复
将Image中的图像,按新的分辨率复制到别一个Image中,即可。我的代码仅代参考。
procedure TSeleteImageFrm.Button2Click(Sender: TObject);
var MyRect, NewRect: TRect;
    Bmp,NewBmp: TBitmap;
    s1,s2:string;
    W,H,WW,WH:integer;
    k,k1:double;
begin
  TempName:=Edit1.text;
  if (XX2=0) or (YY2=0) then
  begin
    XX1:=0;
    YY1:=0;
    XX2:=Image1.Picture.Graphic.Width;
    YY2:=Image1.Picture.Graphic.Height;
  end;
  Bmp:=TBitmap.Create;
  NewBmp:=TBitmap.Create;
  MyRect := Rect(XX1,YY1,XX2,YY2);
  NewRect := Rect(0,0,XX2-XX1, YY2-YY1);
  Bmp.Width:=XX2-XX1;
  Bmp.Height:=YY2-YY1;
  Bmp.Canvas.CopyRect(NewRect,Image2.Canvas, MyRect);
  case ComboBox1.ItemIndex of
    0: ChangeAnyPixels(Bmp,NewBmp,100,133);
    1: ChangeAnyPixels(Bmp,NewBmp,150,200);
    2: ChangeAnyPixels(Bmp,NewBmp,200,266);
    3: ChangeAnyPixels(Bmp,NewBmp,225,300);
    4: ChangeAnyPixels(Bmp,NewBmp,300,400);
  end;
  NewBMP.SaveToFile(ImagePath+TempName+'.bmp');
  Image1.Picture.Assign(BMP);
  Image2.Picture.Assign(BMP);
  ChangeImageSize;
  XX2:=0;
  YY2:=0;
  Bmp.Free;
  NewBmp.Free;
end;
仅供参考。
内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
内容概要:本文围绕基于自适应神经模糊推理系统(ANFIS)智能控制器的可再生能源微电网功率管理系统展开研究,结合Simulink仿真实现,深入探讨了微电网中功率的智能调控与经济机组组合调度问题。通过引入ANFIS控制器,有效应对风能、光伏等可再生能源出力的波动性与不确定性,提升系统运行的稳定性与电能质量。研究内容涵盖微电网多源协调控制策略、功率平衡管理、优化调度模型构建及仿真验证,实现了对分布式电源、储能系统和负荷的协同优化,兼顾经济性与可靠性目标,并通过仿真平台验证了所提方法的有效性与优越性。; 适合人群:具备电力系统、自动化或新能源相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网能量管理、智能控制、能源优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高比例可再生能源接入场景下的微电网能量管理系统研发与教学实践;②为实现微电网功率稳定控制与经济高效运行提供先进的智能控制解决方案;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的仿真验证与方案优化。; 阅读建议:建议结合提供的Simulink模型与相关代码进行动手实践,重点关注ANFIS控制器的设计流程、规则库构建与参数调优方法,并通过与传统PID或MPC控制策略的对比实验,深入理解其在动态响应与鲁棒性方面的优势。同时可进一步拓展文中提出的优化调度逻辑,应用于多目标、多约束的复杂实际应用场景中。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧