Grafico di funzione non assegnata
Salve,
vorrei sapere se c'e un programma che può fare ciò che richiedo, o se c'è un modo
che voi conosciate.
Ho un grafico, o meglio ho solo l'immagine (due assi cartesiani e i pixel che disegnano il grafico)
Ecco quello che vorrei fare:
vorrei tracciare su quest'immagine delle rette parallele all'asse x
tante rette vicine distanziate dello stesso $\Delta y$
Queste rette incontreranno i pixel che appartengono al grafico.
Per ogni retta disegnata vorrei sapere il numero di volte che intercetta il grafico
E' possibile?
grazie a tutti quelli che mi aiuteranno
vorrei sapere se c'e un programma che può fare ciò che richiedo, o se c'è un modo
che voi conosciate.
Ho un grafico, o meglio ho solo l'immagine (due assi cartesiani e i pixel che disegnano il grafico)
Ecco quello che vorrei fare:
vorrei tracciare su quest'immagine delle rette parallele all'asse x
tante rette vicine distanziate dello stesso $\Delta y$
Queste rette incontreranno i pixel che appartengono al grafico.
Per ogni retta disegnata vorrei sapere il numero di volte che intercetta il grafico
E' possibile?
grazie a tutti quelli che mi aiuteranno
Risposte
Va beh dai, ho scritto 'A' ma in realtà è 'M' XD
Ho cambiato lettere a metà, mea culpa!
Comunque A o M è la matrice in cui metti i pixel dell'immagine.
Ho cambiato lettere a metà, mea culpa!
Comunque A o M è la matrice in cui metti i pixel dell'immagine.
"Raptorista":
È una scrittura un po' criptica, ma l'ho scritta proprio per fartela conoscere in caso tu non la conoscessi già.
L'espressione A(i,j) > 0 viene valutata dall'interprete ed assume valore 1 se è vera, 0 se è falsa.
DOPO che l'espressione è stata valutata, il suo valore viene assegnato dall'operatore '=' alla variabile A(i,j), che quindi può valere 1 o 0.
Chiaro?
Gli elementi $A(i,j)$ (prima dell'assegnazione dell'operatore logico) da dove provengono?
Grazie...

È una scrittura un po' criptica, ma l'ho scritta proprio per fartela conoscere in caso tu non la conoscessi già.
L'espressione A(i,j) > 0 viene valutata dall'interprete ed assume valore 1 se è vera, 0 se è falsa.
DOPO che l'espressione è stata valutata, il suo valore viene assegnato dall'operatore '=' alla variabile A(i,j), che quindi può valere 1 o 0.
Chiaro?
L'espressione A(i,j) > 0 viene valutata dall'interprete ed assume valore 1 se è vera, 0 se è falsa.
DOPO che l'espressione è stata valutata, il suo valore viene assegnato dall'operatore '=' alla variabile A(i,j), che quindi può valere 1 o 0.
Chiaro?
"Raptorista":
Concordo con dissonance su entrambe le parti.
Sulla seconda, aggiungerei che anche con matlab non dovrebbe essere difficile: con non-so-quale-funzione converti l'immagine in una matrice che contiene i pixel e poi fai qualche giochino del tipo
% dopo aver messo l'immagine nella matrice M [m,n] = size(M) for i = 1 : m for j = 1 : n A(i,j) = A(i,j) > 0 end end
In questo modo hai degli 1 dove ci sono pixel scuri e 0 dove ci sono pixel bianchi. Ora puoi contare le intersezioni con sum(M(:,j)), facendo attenzione a togliere eventuali pixel di assi cartesiani o altro.
Ho quasi capito... mi è di difficile interpretazione cosa comporti l'uguali nella terz'ultima riga del codice
Concordo con dissonance su entrambe le parti.
Sulla seconda, aggiungerei che anche con matlab non dovrebbe essere difficile: con non-so-quale-funzione converti l'immagine in una matrice che contiene i pixel e poi fai qualche giochino del tipo
In questo modo hai degli 1 dove ci sono pixel scuri e 0 dove ci sono pixel bianchi. Ora puoi contare le intersezioni con sum(M(:,j)), facendo attenzione a togliere eventuali pixel di assi cartesiani o altro.
Sulla seconda, aggiungerei che anche con matlab non dovrebbe essere difficile: con non-so-quale-funzione converti l'immagine in una matrice che contiene i pixel e poi fai qualche giochino del tipo
% dopo aver messo l'immagine nella matrice M [m,n] = size(M) for i = 1 : m for j = 1 : n A(i,j) = A(i,j) > 0 end end
In questo modo hai degli 1 dove ci sono pixel scuri e 0 dove ci sono pixel bianchi. Ora puoi contare le intersezioni con sum(M(:,j)), facendo attenzione a togliere eventuali pixel di assi cartesiani o altro.
@garnak: Mah. Che razza di risposta è "non saprei"? A questo punto non rispondere proprio, no?
Comunque io proverei con MATLAB. Devi scrivere una function che fa il lavoro da te richiesto: in input prende una matrice contenente i pixel del grafico e la spaziatura \(\Delta y\) e in output restituisce una lista, con ogni entrata contenente il numero di intercette della retta orizzontale corrispondente. C'è da smanettare un po', ma non credo sia molto difficile.
Comunque io proverei con MATLAB. Devi scrivere una function che fa il lavoro da te richiesto: in input prende una matrice contenente i pixel del grafico e la spaziatura \(\Delta y\) e in output restituisce una lista, con ogni entrata contenente il numero di intercette della retta orizzontale corrispondente. C'è da smanettare un po', ma non credo sia molto difficile.
Grazie dell'interesse

Salve seven,
non saprei.
Cordiali saluti
"seven":
Salve,
vorrei sapere se c'e un programma che può fare ciò che richiedo, o se c'è un modo
che voi conosciate.
Ho un grafico, o meglio ho solo l'immagine (due assi cartesiani e i pixel che disegnano il grafico)
Ecco quello che vorrei fare:
vorrei tracciare su quest'immagine delle rette parallele all'asse x
tante rette vicine distanziate dello stesso $\Delta y$
Queste rette incontreranno i pixel che appartengono al grafico.
Per ogni retta disegnata vorrei sapere il numero di volte che intercetta il grafico
E' possibile?
grazie a tutti quelli che mi aiuteranno
non saprei.




Cordiali saluti