通过Matlab实现对电脑桌面特定区域的截图以及录屏

您所在的位置:网站首页 电脑如何截屏并保存桌面上 通过Matlab实现对电脑桌面特定区域的截图以及录屏

通过Matlab实现对电脑桌面特定区域的截图以及录屏

2024-07-16 23:54| 来源: 网络整理| 查看: 265

 本程序的实现的功能主要分为以下三个方面:

        1、截屏程序 screencapture.m

        2、区域选择

        3、录屏

 1、截屏程序 screencapture.m

        在MATLAB 网站上可以直接下载到相应程序

        例如:

imageData = screencapture(0, [20,30,40,50]); % capture a small desktop region

获取桌面特定区域的图像。

  2、区域选择

   首先获取整个桌面的截图

ss=[1920 1080];%屏幕分辩率 imageData1 = screencapture(0,[0,-210,ss(1),ss(2)]);%[]中为截取区域 h1=figure(1); imshow(imageData1)

  然后通过在画出的图中,选择铁定的区域,这里使用了imrect创建一个矩形框,通过getPosition(h)获取方框的位置以及大小。

%区域选择 h=imrect; pos=getPosition(h); %通过鼠标获取图像中一个矩形截图区域 % 通过方框的位置确定对于screencapture的位置的输入 x1=pos(1); y1=1080-pos(2)-pos(4)-210;%y方向的值需要调整,210是本人电脑截图的经验值。 dx=pos(3); dy=pos(4); close(h1) pause(1) imageData2 = screencapture(0,[x1,y1,dx,dy]); imshow(imageData2);

 3、录屏

       实现了特定区域的截图,通过截取多张图然后作出动图gif,或者视频文件,从而实现录屏的功能。这里,主要分享存动图的程序。

global x1 y1 dx dy; global name for i=0:50 pause(0.2) imageData1 = screencapture(0,[x1,y1,dx,dy]); imshow(imageData1); [I,map]=rgb2ind(imageData1,256); if(i==0) imwrite(I,map,[name,'.gif'],'DelayTime',0.2,'LoopCount',Inf) else imwrite(I,map,[name,'.gif'],'WriteMode','append','DelayTime',0.2) end end

     Ps. 这里,本人主要通过GUI设计了相应的功能。所以变量传递需要在每个模块间设置成全局变量。

参考:

MATLAB 定时截取桌面固定区域并OCR_matlab截取屏幕特定区域_战死为止的博客-CSDN博客



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3