Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Help inversione matrice

    Originariamente inviato da memol988
    ho una bufferedImage e considerandola come una matrice devo invertire le righe(la prima riga del rettangolo diviene l'ultima e ordinatamente tutte le altre) e le colonne(la prima
    colonna diventa l'ultima e ordinatamente tutte le altre)
    Non ho capito se devi per forza agire sui singoli pixel per un qualche motivo (didattico? esercizio assegnato?).

    Un modo più semplice e performante è quello di usare un AffineTransformOp, gli esempi sono qui
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  2. #12
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    15
    scopo didattico.. cmq credo che si posso fare magari con un operazione di LUT.. infondo è un operazione puntuale..mmm
    Sorridere è bello

  3. #13
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051

    Re: Re: Help inversione matrice

    Originariamente inviato da andbin
    Non ho capito se devi per forza agire sui singoli pixel per un qualche motivo (didattico? esercizio assegnato?).

    Un modo più semplice e performante è quello di usare un AffineTransformOp, gli esempi sono qui
    Sempre con la soluzione perfetta..

    Io stavo pensando a qualcosa di più sporco e banale:

    Due bei cicli di for distinti, uno per invertire le righe e uno per invertire le colonne.

    1) Per ogni riga Ri della matrice: inverti Ri

    2) Per ogni colonna Cj della matrice: inverti la Cj

    La soluzione che stavamo cercando di sviluppare prima è un po' troppo ostica per i miei gusti... (bisogna stare attenti che righe e colonne non siano dispari...)
    Questa invece sarebbe molto più semplice da realizzare e verificare. Rispetto alla prima versione non è molto peggio in quanto efficienza, rispetto a quella proposta da te... non regge il confronto. Ma forse ci sta meglio per scopi didattici. Sempre che le trasformazioni affini non rientrino nel programma... che sia memol988 a decidere! Ciao a tutti!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157
    Se si tratta semplicemente di disegnare un'immagine capovolta orizzontalmente e verticalmente, penso che la soluzione di andbin sia la migliore. Applicare all'oggetto Graphics un'AffineTransform è la cosa migliore da fare

  5. #15
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    15
    forse è un pò complicata per me
    domani penso di implementare l'inversione separatamente per righe e colonne..
    grazie a tutti per la collaborazione.. buona notte a tutti, ci si sente domani
    Sorridere è bello

  6. #16
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Originariamente inviato da memol988
    forse è un pò complicata per me
    domani penso di implementare l'inversione separatamente per righe e colonne..
    grazie a tutti per la collaborazione.. buona notte a tutti, ci si sente domani
    Eh eh.. se vuoi ti do ancora una mano:

    codice:
    class TestInversioneMatrice
    {
    
    	public static void main(String[] args)
    	{
    		String [] riga0 = {"a00", "a01","a02", "a03", "a04" };
    		String [] riga1 = {"a10", "a11","a12", "a13", "a14"  };
    		String [] riga2 = {"a20", "a21","a22", "a23", "a24"  };
    		String [] riga3 = {"a30", "a31","a32", "a33", "a34"  };
    		
    		String [][] matrice = new String [4][];
    		matrice[0] = riga0;
    		matrice[1] = riga1;
    		matrice[2] = riga2;
    		matrice[3] = riga3;
    		
    		System.out.println ("Matrice originale: ");
    		stampaMatrice (matrice);
    
    		trasforma(matrice);
    		
    		System.out.println ("\n\nMatrice Finale: ");
    		stampaMatrice(matrice);
    		
    
    	}
    	
    	public static void trasforma (String [][] m)
    	{
    		// inverto le righe
    		...
    
    		System.out.println ("\n\nRighe invertite: ");
    		stampaMatrice(m);
    
    		
    		// inverto le colonne
    		...
    
    		System.out.println ("\n\nColonne invertite: ");
    		stampaMatrice(m);
    	}
    	
    	public static void stampaMatrice (String [][] m)
    	{
    		for (int i=0; i<m.length; i++)
    		{
    			String riga = "";	
    			for (int j=0; j<m[i].length; j++)
    			{
    				riga += m[i][j] + " ";
    			}
    			System.out.println (riga);
    		}
    		
    	}
    }
    Forse non ci crederai.. ma di questi tempi il System.out.println sembra un'arte dimenticata...

    Notte! (di già? VVoVe: )
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #17
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    15


    cmq ho risolto così:

    codice:
    	public BufferedImage riflettiPixel(BufferedImage im)
    	{
    		int[] temp;
    		WritableRaster wr=im.getRaster(); 
    	
    		// Riflessione per Colonne
    		for(int j=0;j<im.getWidth()/2;j++) // Scorro le colonne verso il centro
    		{
    				temp=wr.getPixels(j,0,1,im.getHeight(),(int [])null);
    				wr.setPixels(j,0,1,h,wr.getPixels(im.getWidth()-j-1,0,1,im.getHeight(),(int[])null));
    				wr.setPixels(im.getWidth()-j-1,0,1,im.getHeight(),temp);
    		}
    		//Riflessione per Righe
    		int[] temp2;
    		for(int i=0;i<im.getHeight()/2;i++)
    		{
    			temp2=wr.getPixels(0,i,im.getWidth(),1,(int [])null);
    			wr.setPixels(0,i,im.getWidth(),1,wr.getPixels(0,im.getHeight()-i-1,im.getWidth(),1,(int[])null));
    			wr.setPixels(0,im.getHeight()-i-1,im.getWidth(),1,temp2);
    		}
    		return im;
    	}
    ma mi rimane il dubbio con le bufferedImage o le trasformazioni affini magari ho un guadagno di prestazioni..
    Sorridere è bello

  8. #18
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157
    Se ti serve semplicemente disegnare un'immagine capovolta, segui i consigli del saggio andbin a meno che il/la prof non voglia che lo faccia tu

  9. #19
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Originariamente inviato da memol988
    ma mi rimane il dubbio con le bufferedImage o le trasformazioni affini magari ho un guadagno di prestazioni..
    Il costo è sempre lineare rispetto alla taglia della matrice. Non ti ucciderà nessuno. spero..
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  10. #20
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    15
    no xD .. grazie a tutti
    Sorridere è bello

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.