Principe
Le présent article sera dédié à la capture d’écran avec Matlab. On va faire appel à un robot Matlab qui permet de prendre un screenshot paramétré par sa position initiale (coordonnées initiales de l’image) et sa taille (longueur et hauteur d’image). Contrairement aux indices Matlab, les valeurs des coordonnées de la position initiale peuvent commencer par (0,0). La position (0,0) indique le coin en haut à gauche de l’écran de son ordinateur. Le script peut prendre des captures d’écran de votre bureau complet, d’une fenêtre ou d’une région. On peut intégrer par exemple un temporisateur dans une boucle infinie qui contrôle le délai de capture d’écran, etc.
Applications
-
- Robots web
- Automatisation des tâches manuelles
- Création des algorithmes et robots de traiding (Matlab + Web)
- Surveillance écran utilisateur (lancement d’une alerte en fonction d’un contenu indésirable)
- Surveillance d’activité du bureau
- Etc.
Fonction de Capture (GetScreen.m)
function imRGB = GetScreen( left, top, width, height)
% Paramètres du robot de capture d'écran
robot = java.awt.Robot();
pos = [left, top, width, height]; % [left top width height]
rect = java.awt.Rectangle(pos(1),pos(2),pos(3),pos(4));
% Capture d'écran
im_capt = robot.createScreenCapture(rect);
% Conversion en format RGB
im_rgb = typecast(im_capt.getRGB(0,0,im_capt.getWidth,im_capt.getHeight,[],0,im_capt.getWidth),'uint8');
imRGB = zeros(im_capt.getHeight,im_capt.getWidth,3,'uint8');
imRGB(:,:,1) = reshape(im_rgb(3:4:end),im_capt.getWidth,[])';
imRGB(:,:,2) = reshape(im_rgb(2:4:end),im_capt.getWidth,[])';
imRGB(:,:,3) = reshape(im_rgb(1:4:end),im_capt.getWidth,[])';
end
Paramètres de la fonction
-
- left: La valeur en pixel de la position initiale de l’indice colon, elle se trouve en haut à gauche de l’écran
- top: La valeur en pixel de la position initiale de l’indice ligne, elle se trouve en haut à gauche de l’écran
- width: Largeur en pixel de l’image capturée
- height: Hauteur en pixel de l’image capturée
- imRGB: Image capturée de taille widthxheight en format RGB
Exemples (main.m)
clear all; close all; clc;
% Capture d'écran
left=0; % Colonne en haut à gauche
top=100; % Ligne en haut à gauche
width=512;
height=512;
imRGB = GetScreen( left, top, width, height);
% Affichage
imshow(imRGB); axis on;
Screenshots 1000×512
...
imRGB = GetScreen( 0, 100, 1000, 512);
...
Screenshots 1000×256
...
imRGB = GetScreen( 0, 100, 1000, 256);
...
Screenshots 1000×128
...
imRGB = GetScreen( 0, 100, 1000, 128);
...
Screenshots 512×512
...
imRGB = GetScreen( 0, 100, 512, 512);
...