Rotation de caméra

mimi1255 Messages postés 87 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 14 mars 2024 - 1 juin 2008 à 23:55
mimi1255 Messages postés 87 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 14 mars 2024 - 2 juin 2008 à 12:40
Bonjour, je dispose d'une caméra Axis 2130 PTZ, j'ai géré le flux
d'image dans le code ci-dessous. Mais maintenant, je voudrais gérer la
rotation, comment faire ?


MErci d'avance.


Voici le code pour gérer le flux, mais je ne sais pas si ça vous avancera:

[CODE]
package Test;
 
 
import java.net.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
 
/**********************************************/
 
publicclass GestionCamAxis extends JPanel implements Runnable {

publicboolean useMJPGStream = true;
public String jpgURL="http://10.104.100.101/axis-cgi/jpg/image.cgi?resolution=704x480";
public String mjpgURL="http://10.104.100.101/axis-cgi/mjpg/video.cgi?resolution=704x480"; //URL de connexion
DataInputStream dis; //flux de données d'éntrée
private Image image=null;
public Dimension imageSize = null;
publicboolean connected = false;
privateboolean initCompleted = false;
HttpURLConnection huc=null;
Component parent;
 

/** Crée une nouvelle instance de AxisCamera */
GestionCamAxis (Component parent_){
parent = parent_;
}
 

 

publicvoid connect(){
try{
URL u = new URL(useMJPGStream?mjpgURL:jpgURL);
huc = (HttpURLConnection) u.openConnection();
//System.out.println(huc.getContentType());
InputStream is = huc.getInputStream();
connected = true;
BufferedInputStream bis = new BufferedInputStream(is);
dis= new DataInputStream(bis);
if(!initCompleted) initDisplay();
}catch(IOException e){//Si aucune connexion n'existe, on attend pour se reconnecter à nouveau
try{
huc.disconnect();
Thread.sleep(60);
}catch(InterruptedException ie){huc.disconnect();connect();}
connect();
}catch(Exception e){;}
}
 
publicvoid initDisplay(){//Configuration de l'affichage
if(useMJPGStream)readMJPGStream();
else{readJPG();disconnect();}
parent.validate();
initCompleted = true;
}

publicvoid disconnect(){
try{
if(connected){
dis.close();
connected = false;
}
}catch(Exception e){;}
}
 

publicvoid paint(Graphics g){//On fixe l'image dans le Panel
if(image != null)
g.drawImage(image, 0, 0, this);
}
 

publicvoid readStream(){//Lecture des flux continu
try{
if(useMJPGStream){
while(true){
readMJPGStream();
parent.repaint();
}
}
else{
while(true){
connect();
readJPG();
parent.repaint();
disconnect();
 
}
}
 
}catch(Exception e){;}
}
 
 
publicvoid readMJPGStream(){//lecture du flux mjpg
readLine(3,dis); //Lecture à partir de la 3ème ligne
readJPG();
readLine(2,dis); //on retire les 2 dernières lignes
}
 
publicvoid readJPG(){//Lecture de l'image jpeg incorporée
try{
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(dis);
image = decoder.decodeAsBufferedImage();
}catch(Exception e){e.printStackTrace();disconnect();}
}
 
publicvoid readLine(int n, DataInputStream dis){//utilisée pour sauter les lignes d'en-tête
for(int i=0; i<n;i++){
readLine(dis);
}
}
publicvoid readLine(DataInputStream dis){
try{
boolean end = false;
String lineEnd = "\n"; //On suppose que la fin de la ligne est marqué
byte[] lineEndBytes = lineEnd.getBytes();
byte[] byteBuf = newbyte[lineEndBytes.length];
 
while(!end){
dis.read(byteBuf,0,lineEndBytes.length);
String t = new String(byteBuf);
//System.out.print(t); //décommenter pour voir à quoi ressemble les lignes
if(t.equals(lineEnd)) end=true;
}
}catch(Exception e){e.printStackTrace();}
 
 
}
publicvoid run(){
connect();
readStream();
}

 
 
publicstaticvoid main(String[] args){
}
 

 
}

1 réponse

mimi1255 Messages postés 87 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 14 mars 2024
2 juin 2008 à 12:40
personne pour m'aider ? s'il vous plait ?

Merci
0
Rejoignez-nous