首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >增加MATLAB屏幕截图功能

增加MATLAB屏幕截图功能

作者头像
万木逢春
发布于 2019-04-30 10:08:53
发布于 2019-04-30 10:08:53
1.8K00
代码可运行
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab
运行总次数:0
代码可运行

借助Java或者Python实现截取屏幕指定矩形区域

Java实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function outputImage=screenCapture(subRegion,outputFile)
robo = java.awt.Robot;
if ~exist('subRegion','var') || isempty(subRegion)
    %获取屏幕尺寸
    t = java.awt.Toolkit.getDefaultToolkit();
    rectangle = java.awt.Rectangle(t.getScreenSize());
else
    x=subRegion(1);
    y=subRegion(2);
    w=subRegion(3);
    h=subRegion(4);
    rectangle = java.awt.Rectangle(x,y,w,h);
end
img = robo.createScreenCapture(rectangle);
%截取矩形局域
if nargout
    %转换为MATLAB矩阵
    h=img.getHeight();
    w=img.getWidth();
    data=img.getData();
    pix=data.getPixels(0,0,w,h,[]);
    tmp=reshape(pix(:),3,w,h);
    outputImage=zeros(h,w,3);
    for ii=1:3
        outputImage(:,:,ii)=squeeze(tmp(ii,:,:))';
    end
end
if exist('outputFile','var')
    %保存文件
    filehandle = java.io.File(outputFile);
    javax.imageio.ImageIO.write(img,'jpg',filehandle);
end
end

Python实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function outputImage=screenCapture(subRegion,outputFile)
if ~exist('subRegion','var') || isempty(subRegion)
    %获取屏幕尺寸
    subRegion = {0, 0, ...
        py.win32api.GetSystemMetrics(py.win32con.SM_CXSCREEN),...
        py.win32api.GetSystemMetrics(py.win32con.SM_CYSCREEN)};
else
    x=subRegion(1);
    y=subRegion(2);
    w=subRegion(3);
    h=subRegion(4);
    subRegion = {x, y, x+w, y+h};
end
img = py.PIL.ImageGrab.grab().crop(subRegion);
%截取矩形局域
if exist('outputFile','var')
    %保存文件
    img.save(outputFile);
end
if nargout
    %转换为MATLAB矩阵
    data = py.numpy.array(img).reshape(img.height*img.width*3);
    img_arr=cellfun(@uint8,cell(data.data));
    tmp=reshape(img_arr(:),3,w,h);
    outputImage=zeros(h,w,3);
    for ii=1:3
        outputImage(:,:,ii)=squeeze(tmp(ii,:,:))';
    end
    %     outputImage=outputImage/255;
end
end
对
比
Rect=[50,50,50,50];
tic
win.screenCapture(Rect);
toc
时间已过 0.065043 秒。
tic
pywin.screenCapture(Rect);
toc
时间已过 0.080278 秒。

Java实现的版本要快上一些,可能是Python在数值转化的时候耗费了一些时间

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java|屏幕截图
初入java,想用java来实现游戏脚本功能,但是奈何刚刚入门。于是我就将其分为了几个板块:1屏幕截图,2图片比对获取关键坐标,3对关键坐标进行操作。
算法与编程之美
2020/07/28
2.5K0
Java|屏幕截图
基于jquery的imgAreaSelect.js插件+JAVA后台实现图片裁剪保存功能
哎_小羊
2018/01/02
6.3K1
基于jquery的imgAreaSelect.js插件+JAVA后台实现图片裁剪保存功能
增加MATLAB获取其他程序窗体位置功能
一样的调用win32程序,都需要窗体的类名、窗体名称作为参数。Java接口用的传值方式、需要创建一个矩形对象传入函数,执行后矩形对象里面就是返回值;Python接口就是正常的返回,只是返回值格式不一样,针对不一样的返回将数值组成MATLAB数组返回
万木逢春
2019/04/30
1.1K0
Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇
Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之整体思路篇 Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇 Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之执行计划生成篇
九转成圣
2024/11/21
1350
Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇
java贪吃蛇小游戏(详解)[通俗易懂]
首先给出代码下载地址(含素材):https://share.weiyun.com/8hkvy1Ja
全栈程序员站长
2022/09/07
1.8K0
java贪吃蛇小游戏(详解)[通俗易懂]
matlab
对于一些nc数据或者遥感影像处理时,虽然一些第三方软件可以出图,但我们往往需要借助python或者matlab软件进行数据处理,但最后保存下来数据如何导入arcgis进行分析呢?
用户6841540
2024/08/05
6040
【强化学习】迷宫寻宝:Sarsa和Q-Learning
本篇博文通过迷宫寻宝这一实例来探究Sarsa和Q-Learning的不同。 相关代码主要参考自邹伟等人所著的《强化学习》(清华大学出版社)。.
zstar
2022/06/14
1.5K1
【强化学习】迷宫寻宝:Sarsa和Q-Learning
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
下面将会一步一步演示,并 详细分析内部的原因,会尽量用清晰直观的方式,让大家去理解,以收获更多的知识!
AI算法与图像处理
2021/03/12
4720
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
数字图像处理学习笔记(七)——用Pycharm及MATLAB实现三种图像内插法(最近邻内插法、双线性内插法、双三次内插法)
★由于之前学习笔记(四)有对于图像三种插值的理论讲解,这里就不再赘余; 可参照此文阅读学习☞图像的三种内插法
荣仔_最靓的仔
2021/02/02
1.2K0
数字图像处理学习笔记(七)——用Pycharm及MATLAB实现三种图像内插法(最近邻内插法、双线性内插法、双三次内插法)
【目标检测】YOLOv5-5.0增加save_crop及后处理
因为项目中用到的是YOLOv5-5.0版本,save_crop是6.0版本才开始有的接口,因此需要将6.0版本做一个迁移。 此篇博文主要用作代码备份,自用为主。
zstar
2022/10/28
1.4K0
opencv小项目练习之数独求解
对于给定的数独照片(尽可能干净整齐),进行一系列处理,提取位置和数字信息,这中间可能要用到一系列图像处理的基本算法,数字识别时初步打算用knn来做,knn对手写体的精度一般,这里要求输入应该是打印体,这样才能保证正确率,最后通过数独求解的算法算出答案。
和蔼的zhxing
2018/09/04
1.5K0
opencv小项目练习之数独求解
CodeBuddy-打造一款科研论文绘图利器PlotBuddy
在科研写作过程中,“画图”往往是一件令人头疼却又不得不精益求精的工作。无论是模型框架、流程图、对比图,还是实验结果可视化。其中,经常会出现一些局部细节放大展示的图像,也就是“画中画”的效果,如下所示:
Vaeeeee
2025/05/22
3200
CodeBuddy-打造一款科研论文绘图利器PlotBuddy
Python OpenCV 3.x 示例:6~11
在本章中,我们将学习有关内容感知的图像大小调整,这也称为接缝雕刻。 我们将讨论如何检测图像中有趣的部分,以及如何使用该信息调整给定图像的大小而不会降低这些有趣元素的质量。
ApacheCN_飞龙
2023/04/27
9900
目标检测基本概念与性能评价指标计算
不同的问题和不同的数据集都会有不同的模型评价指标,比如分类问题,数据集类别平衡的情况下可以使用准确率作为评价指标,但是现实中的数据集几乎都是类别不平衡的,所以一般都是采用 AP 作为评价指标,分别计算每个类别的 AP,再计算mAP。
嵌入式视觉
2022/09/05
9780
目标检测基本概念与性能评价指标计算
Python OpenCV 计算机视觉:1~5
本章是设置 Python 2.7,OpenCV 和相关库的快速指南。 设置完成后,我们还将查看 OpenCV 的 Python 示例脚本和文档。
ApacheCN_飞龙
2023/04/27
2.9K0
zxing二维码生成服务之深度定制
二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户来随意指定 设计 1. 技术相关 zxing 开源包用于生成二维码 springboot 搭建基本web服务,提供http接口 awt 用于图片的编辑 httpclient 用于从网络下载图片 lombok 简化编码 2. 目的 既然是对二维码服务的深度定制,那我们的目的基本上就是二维码上面出现的东西,都可以按照我们的需求进行改造 这里,我们设计两
一灰灰blog
2018/02/06
2.6K0
zxing二维码生成服务之深度定制
Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]
一直想做机器学习的东东,最近由于工作的调整,终于有开始接触的机会了,哈哈。本文主要代码是来源于“就是这个七昂”的博文,传送门在此:https://blog.csdn.net/qq_42633819/article/details/81191308。”就是这个七昂”大大在他的博文中已经将人脸识别的过程讲的很清楚了。说来忏愧,在算法上我没有改变(我自己还没搞清楚,打算好好看看keras),因为在大大博文评论区看到好多人问怎么实现多个用户的人脸识别。刚开始我也在纳闷,怎么做呢?于是我就大胆尝试了一把,
全栈程序员站长
2022/06/26
2.3K0
Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]
基于YOLOv2和传感器的多功能门禁系统
设计基于 YOLOv 2 的人脸识别门禁系统,主要由成品模块组成。具体包含:K210 Maix Bit、配套24PIN DVP 摄像头及 LCD 屏、SG90舵机、HC-SR501人体红外感应模块、MFRC-522射频模块、HC-05蓝牙模块、有源蜂鸣器、32G SD 内存卡及读卡器、4位独立按键。
timerring
2023/10/13
9030
基于YOLOv2和传感器的多功能门禁系统
MATLAB命令大全+注释小结
一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。   !dir& 可以在dos状态下查看。 2、who  可以查看当前工作空间变量名,    whos 可以查看变量名细节。 3、功能键: 功能键             快捷键           说明 方向上键           Ctrl+P          返回前一行输入 方向下键           Ctrl+N          返回下一行输入 方向左键           Ctrl+B  
Angel_Kitty
2018/04/09
2.6K0
OpenCV之cv2函数
1、 cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括
周小董
2019/03/25
7.6K0
OpenCV之cv2函数
推荐阅读
相关推荐
Java|屏幕截图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档