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

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

        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博客

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值