Sto provando a progettare un modo per rilevare la curvatura di questo tubo. Ho provato ad applicare la trasformazione di hough e ho trovato la linea rilevata, ma non si trovano lungo la superficie del tubo, quindi la levigatura per adattarsi a una curva di beizer non funziona. Si prega di suggerire un buon modo per iniziare l'immagine in questo modo. [Curva di calcolo di un tubo piegato utilizzando l'elaborazione dell'immagine (rilevamento parabola trasformazione Hough)
L'immagine ottenuta da Hough Transform per rilevare le linee è la seguente [ Sto usando il codice Matlab standard per il rilevamento di linee di trasformazione di hitch probabilistico che genera segmenti di linea che circondano la struttura. Essenzialmente la forma del tubo assomiglia a una parabola, ma per la rilevazione della parabola di hough ho bisogno di fornire l'eccentricità del punto prima del rilevamento. Si prega di suggerire un buon metodo per trovare punti discreti lungo la curvatura che possono essere montati su una parabola. Ho dato tag a opencv e ITK quindi se c'è una funzione che può essere implementata su questa particolare immagine, suggerire la funzione che proverò per vedere i risultati.
img = imread('test2.jpg');
rawimg = rgb2gray(img);
[accum, axis_rho, axis_theta, lineprm, lineseg] = Hough_Grd(bwtu, 8, 0.01);
figure(1); imagesc(axis_theta*(180/pi), axis_rho, accum); axis xy;
xlabel('Theta (degree)'); ylabel('Pho (pixels)');
title('Accumulation Array from Hough Transform');
figure(2); imagesc(bwtu); colormap('gray'); axis image;
DrawLines_2Ends(lineseg);
title('Raw Image with Line Segments Detected');
La mappa bordo dell'immagine è il seguente e il risultato generato dopo l'applicazione sulla trasformata di Hough bordo mappa non è buona. Stavo pensando a una soluzione che il rilevamento generale della forma parametrica come questa curva possa essere espresso come una famiglia di parabole e quindi eseguiamo una curva adatta a stimare i coefficienti mentre si curva per analizzare la sua curvatura. Devo progettare una procedura in tempo reale, quindi per favore suggerisci qualcosa in questa direzione.
Umm, solo indovinando: cosa succede se si passa l'originale attraverso un rilevatore di bordo canny prima? – jjmontes
Ho provato ad applicare la trasformazione di hough a una mappa dei bordi, ma non ha comportato un rilevamento della linea migliore dalla trasformazione di hough. –
Vedo. Risultato molto peggiore per le linee rette, ma forse meglio per una parabola. Forse potresti ottenere punti affidabili usando l'intersezione delle linee nel tuo primo approccio: sembra che ci sia una maggiore densità di intersezioni nel bordo del tubo, ma non so se questo sarà generalizzato bene ad altre immagini. Sono un novizio in CV, se nessuno risponde qui, posso solo suggerire di chiedere nei siti 'dsp' o' cv' StackExchange. – jjmontes