- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab api 截屏matlab api 截屏
matlab api 截屏
摘要:结合如何用window?API实现matlab屏幕抓取函数,介绍了在matlab中如何利用matlab与C/C++的接口,调用操作系统API,扩展matlab功能。
引言MATLAB?产品家族是美国?MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。由于其完整的专业体系和先进的设计?开发思路,使得?MATLAB?在多种领域都有广阔的应用空间。尽管MATLAB在科学研究以及工业技术开发方面有着极为广泛的应用,但是它也不是万能的。在某些场合下,MATLAB自身携带的函数及其组合并无法完全?满足用户的要求,而必须通过调用操作系统的API函数来实现。MATLAB在设计时已经考虑到这点,为我们提供了mex命令,可用于将调用操作系统API?函数的C程序编译成DLL文件,也就是MEX文件,使之成为MATLAB的一个扩展函数。这样,我们在MATLAB环境下编程时就可以直接调用该扩展函?数,达到间接调用操作系统API函数的目的。本文将通过如何为MATLAB编写屏幕抓取函数来演示上述过程。
MEX接口MEX是MATLAB?Executable的缩写,也就是可以在MATLAB中执行。这是MATLAB和其他主要编程语言如C/C++,FORTRAN的接口。普通的C?/C++或是FORTRAN源程序,只要加上一个特殊的接口函数,就能通过MATLAB里的MEX命令编译成一种特殊的动态链接库函数,而这种函数可以在?MATLAB环境下编程时直接调用,与MATLAB内嵌的函数一样。这个特殊的接口函数相当于C程序中的main函数,是程序的入口,程序的执行就是从这?个入口函数开始的。其原型为void?mexFunction(int?nlhs,?mxArray?*plhs[],?int?nrhs,?const?mxArray?*prhs[])其中,参数nlhs和nrhs为输出和输入变量的数目,参数plhs和prhs为输出和输入变量指针的指针,prhs是长度为nrhs的输入变量的指针数组,plhs是长度为nlhs的输出变量的指针数组。
利用window?API实现matlab屏幕抓取函数本质上就是利用C语言调用window?API函数来实现屏幕抓取功能,同时,必须处理好C语言与matlab接口问题和C语言中数组存储与matlab中数组存储的转化问题。以下是C源程序,有详细的注释。
//?matlab?mex?file?to?snap?the?screen//?compile?to?use?mex?screensnap.c?user32.lib?gdi32.lib//?usage:1,?a=screensnap(0)?%exclude?the?matlab?window//?imshow(a);//?2,?a=screensnap(1);?%include?the?matlab?window//??imshow(a);//?designed?by?darnshong?chenzushang@?//?2005,12,18#include?windows.h#include?string.h#include?mex.hvoid?mexFunction(int?nlhs,?mxArray?*plhs[],?int?nrhs,?const?mxArray?*prhs[]){int?cx,cy,recnum;int?dims[3],i,j,k;char?*pchar,*mloc;bool?bshowmatlab;//抓屏时是否屏蔽matlab主窗口HWND?hwin,hactw;HDC?dc,memdc;RECT?rect;HBITMAP?hbitm,hold;BITMAPINFOHEADER?binfoh;if(nrhs!=1)?//对输入参数进行检验mexErrMsgTxt(Need?1?argument!\n);if(!mxIsDouble(prhs[0]))mexErrMsgTxt(The?input?argument?must?be?a?numeric!\n);if(*(double*)(mxGetData(prhs[0]))==0)bshowmatlab=false;elsebshowmatlab=true;hactw=GetForegroundWindow();//获取matlab的窗口句柄hwin=GetDesktopWindow();//获取桌面窗口句柄dc=GetWindowDC(hwin);//获取桌面窗口DCGetWindowRect(hwin,rect);//获取桌面窗口大小cx=rect.right-
您可能关注的文档
- J034 北京市总体规划修编的技术支持_方案规划应用实例J034 北京市总体规划修编的技术支持_方案规划应用实例.pdf
- javascript简介javascript简介.doc
- JAVA手机编程技术JAVA手机编程技术.pdf
- JAVA开题报告JAVA开题报告.doc
- java技术体系和学习提纲java技术体系和学习提纲.pdf
- java无难事Java技术与应用java无难事Java技术与应用.ppt
- HSE管理制度7-长庆油田分公司挖掘作业安全管理办法HSE管理制度7-长庆油田分公司挖掘作业安全管理办法.pdf
- JAVA综合试题集_分析答案JAVA综合试题集_分析答案.doc
- JGJ91-93科学实验室建筑设计规范JGJ91-93科学实验室建筑设计规范.pdf
- JC 840-1999 自粘橡胶沥青防水卷材JC 840-1999 自粘橡胶沥青防水卷材.pdf
- MATLAB工具箱MATLAB工具箱.ppt
- Marine Newsletter 20140717Marine Newsletter 20140717.pdf
- MARIANNEBOLLE玛丽安保莱让你安心使用一辈子的化妆品品牌MARIANNEBOLLE玛丽安保莱让你安心使用一辈子的化妆品品牌.pdf
- matlab学习资料matlab学习资料.ppt
- MBA论证有效性分析写作对策MBA论证有效性分析写作对策.pdf
- MBA与EMBA的区别MBA与EMBA的区别.ppt
- MBR方案(500吨)MBR方案(500吨).doc
- MBTF交易报告中英文对照MBTF交易报告中英文对照.pdf
- MDA论文:基于MDA和UML技术的图书馆管理系统的实现MDA论文:基于MDA和UML技术的图书馆管理系统的实现.doc
- MBTI职业性格测试(ESTJ)FZMBTI职业性格测试(ESTJ)FZ.pdf
最近下载
- 天津市南开翔宇学校语文新初一分班试卷含答案.pdf VIP
- 2025年佛山市华英学校小升初分班考试语文作文押题及范文分析.pdf VIP
- GB50026-2020 工程测量标准.docx
- 征信报告模板带水印可编辑2025年4月版.pdf
- 医疗废物热解气化焚烧工艺的设计与热力系统计算.docx VIP
- 2025年天津市南开翔宇学校新初一分班语文试卷含答案.pdf VIP
- (正式版)DB42∕T 1042-2015 《地理标志产品 梅子贡茶》.docx VIP
- DL-T5018-2015水电水利工程钢闸门制造安装及验收规范.pdf
- 小学奥数(三升四)特训版结业测试卷(有答案).doc VIP
- 龙门吊安装拆除安全施工专项方案.doc VIP
文档评论(0)