Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >增加MATLAB屏幕截图功能

增加MATLAB屏幕截图功能

作者头像
万木逢春
发布于 2019-04-30 10:08:53
发布于 2019-04-30 10:08:53
1.7K00
代码可运行
举报
文章被收录于专栏:帮你学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版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇 Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之执行计划生成篇
九转成圣
2024/11/21
930
Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇
数字图像处理学习笔记(七)——用Pycharm及MATLAB实现三种图像内插法(最近邻内插法、双线性内插法、双三次内插法)
★由于之前学习笔记(四)有对于图像三种插值的理论讲解,这里就不再赘余; 可参照此文阅读学习☞图像的三种内插法
荣仔_最靓的仔
2021/02/02
1.1K0
数字图像处理学习笔记(七)——用Pycharm及MATLAB实现三种图像内插法(最近邻内插法、双线性内插法、双三次内插法)
java贪吃蛇小游戏(详解)[通俗易懂]
首先给出代码下载地址(含素材):https://share.weiyun.com/8hkvy1Ja
全栈程序员站长
2022/09/07
1.8K0
java贪吃蛇小游戏(详解)[通俗易懂]
opencv小项目练习之数独求解
对于给定的数独照片(尽可能干净整齐),进行一系列处理,提取位置和数字信息,这中间可能要用到一系列图像处理的基本算法,数字识别时初步打算用knn来做,knn对手写体的精度一般,这里要求输入应该是打印体,这样才能保证正确率,最后通过数独求解的算法算出答案。
和蔼的zhxing
2018/09/04
1.5K0
opencv小项目练习之数独求解
增加MATLAB获取其他程序窗体位置功能
一样的调用win32程序,都需要窗体的类名、窗体名称作为参数。Java接口用的传值方式、需要创建一个矩形对象传入函数,执行后矩形对象里面就是返回值;Python接口就是正常的返回,只是返回值格式不一样,针对不一样的返回将数值组成MATLAB数组返回
万木逢春
2019/04/30
1.1K0
Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]
一直想做机器学习的东东,最近由于工作的调整,终于有开始接触的机会了,哈哈。本文主要代码是来源于“就是这个七昂”的博文,传送门在此:https://blog.csdn.net/qq_42633819/article/details/81191308。”就是这个七昂”大大在他的博文中已经将人脸识别的过程讲的很清楚了。说来忏愧,在算法上我没有改变(我自己还没搞清楚,打算好好看看keras),因为在大大博文评论区看到好多人问怎么实现多个用户的人脸识别。刚开始我也在纳闷,怎么做呢?于是我就大胆尝试了一把,
全栈程序员站长
2022/06/26
2.1K0
Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
下面将会一步一步演示,并 详细分析内部的原因,会尽量用清晰直观的方式,让大家去理解,以收获更多的知识!
AI算法与图像处理
2021/03/12
4500
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
基于jquery的imgAreaSelect.js插件+JAVA后台实现图片裁剪保存功能
哎_小羊
2018/01/02
6.2K1
基于jquery的imgAreaSelect.js插件+JAVA后台实现图片裁剪保存功能
Java|屏幕截图
初入java,想用java来实现游戏脚本功能,但是奈何刚刚入门。于是我就将其分为了几个板块:1屏幕截图,2图片比对获取关键坐标,3对关键坐标进行操作。
算法与编程之美
2020/07/28
2.4K0
Java|屏幕截图
学生管理系统(springMVC)
《Java Web编程》课程设计  学生管理系统 完成日期:   2018年12月26日   1  项目引言 1.1  项目简介        学生入校后,我们需要管理这些学生,那么就需要我们对这些学生进行很多的操作,此时我们学校对学生有条理的管理,包括一些基本信息的记录,就方便了学生的信息管理。 1.2  使用技术        这是一个学生管理系统,应用的是SSH框架Spring+SpringMVC+Hibernate的项目, 运用的知识:        spring,spring
泰斗贤若如
2019/06/18
4.1K0
学生管理系统(springMVC)
【十】python基础之文件处理
给要打开的文件对象指定一个名字,这样可在完成操作之后迅速关闭文件,防止一些无用的文件对象占用内存
菲宇
2019/06/13
7020
【十】python基础之文件处理
【强化学习】迷宫寻宝:Sarsa和Q-Learning
本篇博文通过迷宫寻宝这一实例来探究Sarsa和Q-Learning的不同。 相关代码主要参考自邹伟等人所著的《强化学习》(清华大学出版社)。.
zstar
2022/06/14
1.5K1
【强化学习】迷宫寻宝:Sarsa和Q-Learning
OpenCV3 和 Qt5 计算机视觉:6~10
它始终以未经处理的原始图像开始,这些图像是使用智能手机,网络摄像头,DSLR 相机,或者简而言之,是能够拍摄和记录图像数据的任何设备拍摄的。 但是,通常以清晰或模糊结束。 明亮,黑暗或平衡; 黑白或彩色; 以及同一图像数据的许多其他不同表示形式。 这可能是计算机视觉算法中的第一步(也是最重要的步骤之一),通常被称为图像处理(目前,让我们忘记一个事实,有时计算机视觉和图像处理可互换使用;这是历史专家的讨论。 当然,您可以在任何计算机视觉过程的中间或最后阶段进行图像处理,但是通常,用大多数现有设备记录的任何照片或视频首先都要经过某种图像处理算法。 这些算法中的某些仅用于转换图像格式,某些用于调整颜色,消除噪点,还有很多我们无法开始命名。 OpenCV 框架提供了大量功能来处理各种图像处理任务,例如图像过滤,几何变换,绘图,处理不同的色彩空间,图像直方图等,这将是本章的重点。
ApacheCN_飞龙
2023/04/27
2.8K0
matlab
对于一些nc数据或者遥感影像处理时,虽然一些第三方软件可以出图,但我们往往需要借助python或者matlab软件进行数据处理,但最后保存下来数据如何导入arcgis进行分析呢?
用户6841540
2024/08/05
3640
zxing二维码生成服务之深度定制
二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户来随意指定 设计 1. 技术相关 zxing 开源包用于生成二维码 springboot 搭建基本web服务,提供http接口 awt 用于图片的编辑 httpclient 用于从网络下载图片 lombok 简化编码 2. 目的 既然是对二维码服务的深度定制,那我们的目的基本上就是二维码上面出现的东西,都可以按照我们的需求进行改造 这里,我们设计两
一灰灰blog
2018/02/06
2.6K0
zxing二维码生成服务之深度定制
Python OpenCV 计算机视觉:1~5
本章是设置 Python 2.7,OpenCV 和相关库的快速指南。 设置完成后,我们还将查看 OpenCV 的 Python 示例脚本和文档。
ApacheCN_飞龙
2023/04/27
2.8K0
目标检测基本概念与性能评价指标计算
不同的问题和不同的数据集都会有不同的模型评价指标,比如分类问题,数据集类别平衡的情况下可以使用准确率作为评价指标,但是现实中的数据集几乎都是类别不平衡的,所以一般都是采用 AP 作为评价指标,分别计算每个类别的 AP,再计算mAP。
嵌入式视觉
2022/09/05
9360
目标检测基本概念与性能评价指标计算
里程碑式成果Faster RCNN复现难?我们试了一下 | 附完整代码
【导读】2019年以来,除各AI 大厂私有网络范围外,MaskRCNN,CascadeRCNN 成为了支撑很多业务得以开展的基础,而以 Faster RCNN 为基础去复现其他的检测网络既省时又省力,也算得上是里程碑性成果了。因此本文主要以简洁易懂的文字复现了 Resnet - Faster R-CNN 。
AI科技大本营
2019/08/23
2.2K0
里程碑式成果Faster RCNN复现难?我们试了一下 | 附完整代码
Python 数据科学入门教程:OpenCV
欢迎阅读系列教程,内容涵盖 OpenCV,它是一个图像和视频处理库,包含 C ++,C,Python 和 Java 的绑定。 OpenCV 用于各种图像和视频分析,如面部识别和检测,车牌阅读,照片编辑,高级机器人视觉,光学字符识别等等。
ApacheCN_飞龙
2022/12/01
1.4K0
Python 数据科学入门教程:OpenCV
Yolov8 源码解析(四十三)
ApacheCN_飞龙
2024/09/13
2640
推荐阅读
相关推荐
Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验