Gentile community di stackoverflow,
Immagino di avere un problema relativamente facile, ma comunque non ho idea di come risolverlo.
Quindi ho questa figura che è una mappa di una cittàdal momento che Matlab non può sapere che si tratta di una mappa, l'altezza e la lunghezza sono misurate in pixel (suppongo). Tuttavia, mi piacerebbe trovare o definire valori realistici in modo che sia misurata in metri / chilometri, dato che sto codificando un simulatore di car sharing e non è così elegante che perdano una certa quantità di carica per pixel. Pertanto, mi piacerebbe definire in anticipo che abbiamo a che fare con i misuratori anziché con i pixel senza modificare le dimensioni effettive della figura. Quindi immaginiamo che l'immagine abbia una risoluzione di 1024x768 e voglio che Matlab interpreti questa "soluzione" come 5 km di larghezza e 3 km di altezza.
In questo momento, uso semplicemente imread:
hf = figure();
[B, map] = imread("Hannoverosm.png");
C = imresize(B, 0.975);
imshow(C, map)
risposte:
1 per risposta № 1Non puoi semplicemente creare funzioni per passare dal tuo spazio pixel al tuo spazio km?
function km = pixels2km(pixels)
km = pixels*(5/1024);
end
function pixels = km2pixels(km)
pixels = km*(1024/5);
end
In realtà questi calcoli sono così semplici che probabilmente non hai nemmeno bisogno delle funzioni. Inoltre, poiché lo spazio dei pixel è discreto, devi decidere il metodo migliore per l'arrotondamento (probabilmente floor
o ceil
a seconda di quale angolo stai facendo l '"origine"