Captures d’écran ou screenshots avec MATLAB

 

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 1000x512

 

Screenshots 1000×256

...
imRGB = GetScreen( 0, 100, 1000, 256);
...

screenshots 1000x256

 

Screenshots 1000×128

...
imRGB = GetScreen( 0, 100, 1000, 128);
...

screenshots 1000x128

Screenshots 512×512

...
imRGB = GetScreen( 0, 100, 512, 512);
...

screenshots 512x512

Dernières réalisations

Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Robot *