Sto provando a fare un'analisi di forma di un oggetto in un'immagine in MATLAB (in particolare). Per fare ciò, ho trovato dei pixel di confine. Per ogni pixel di confine sto calcolando il suo vicino usando la teoria di 8-vicinato. Ora sto calcolando la tangente di un punto al suo unico vicino (dipende da come seleziono in senso orario o altro). Il mio algoritmo funziona bene se ogni pixel ha esattamente due vicini. Per forme mostrate in this picture (ordine 9 x 15 pixel).Trovare il pixel migliore del vicino
Ma se ci sono più di 2 vicini di un pixel, il mio algoritmo si confonde. Ad esempio come mostrato in (ordine 9 X 15 pixel).
voglio prendere tangenti di ogni pixel di confine con il pixel prossimo in senso orario o in senso antiorario e se notate seconda immagine, immagine contorno valido, che è, se mi sto muovendo in senso orario poi il vicino di pixel rossi sarebbe verde e il vicino di verde in senso orario sarebbe "1" e il vicino di "1" è "2", ma non posso tornare ai pixel blu e marrone e non posso visitare e prendere la tangente di ogni confine pixel con il suo pixel vicino.
Ho imparato gli algoritmi di visita del nodo del grafico in cui mantieni la coda o lo stack ma in questo caso non voglio solo visitare ciascun pixel ma anche prendere tangente di ogni pixel con solo pixel vicini a destra in base alla direzione I mi sto muovendo.
Questo è un problema di esempio e problemi simili possono verificarsi in qualche altro modo, quindi sto cercando di generare qualche algoritmo generico per questo. Apprezzerò il tuo aiuto. Grazie.
è necessario visualizzare il calcolo, come accade nel corso confini tra pixel, non pixel. Quindi non c'è nessun problema. Quindi, procedendo in senso orario, scoprirai che i fili blu-rossi portano ai fili rosso-blu e quelli blu-rossi e non ci sono problemi. – btilly
Ma la 2a immagine è un'immagine valida in cui tutti i pixel sono pixel al contorno. Quindi, mentre si scorre su pixel, si tiene presente che ogni pixel che è bianco è un pixel di confine. –