Ich habe zwei FragenKonvertierung von Doppel in Struct ist nicht möglich
(1) Warum generiert der folgende Code diesen Fehler? Woher kommt double
?
Error using horzcat
The following error occurred converting from double to struct:
Error using struct
Conversion to struct from double is not possible.
Error in remove_scratch (line 34)
old1 = [lines1, max_vertex1] ;
(2) wie man diesen Fehler los wird?
Relevant Source Code
for n = 1:N
% take n-th image
hough_trf_input = monochrome_image(:,:,n);
% find straight lines in the image
[hough_lines, thetas] = hugh_transform(hough_trf_input);
%////////////////////////////////////////////////////////////
[lines1, max_vertex1] = find_lines(hough_lines, thetas(1));
[lines2, max_vertex2] = find_lines(hough_lines, thetas(2));
[lines3, max_vertex3] = find_lines(hough_lines, thetas(3));
if(n==1)
old1 = [lines1, max_vertex1];
old2 = [lines2, max_vertex2];
old3 = [lines3, max_vertex3];
else
oldlen1 = vertex_length(old1(2));
oldlen2 = vertex_length(old2(2));
oldlen3 = vertex_length(old3(2));
newlen1 = vertex_length(max_vertex1);
newlen2 = vertex_length(max_vertex2);
newlen3 = vertex_length(max_vertex3);
if(newlen1 > oldlen1)
old1 = [lines1, max_vertex1] ;
end
if(newlen2 > oldlen2)
old2 = [lines2, max_vertex2] ;
end
if(newlen3 > oldlen3)
old3 = [lines3, max_vertex3] ;
end
end
end
find_lines()
Hier liefert einen Vektor, dessen erstes Element ein Vektor von line
-structs, und das zweite Element ist ein Vektor von zwei Vektoren, wobei jeder Vektor 2-Element ist und repräsentiert eine Achse.
Wir müssen wissen, was die Ausgabe Arten sind für 'find_lines'. Sollten Sie nicht Arrays anstelle von fortlaufend nummerierten Variablennamen wie 'old1',' old2', 'old3' verwenden? In der Tat könnte dies eine Aufgabe für Zellen-Arrays sein. – beaker
@beaker, 'find_lines()' gibt einen Vektor zurück, dessen erstes Element ein Vektor von 'line'-Objekten ist, und das zweite Element ist ein Vektor von zwei Vektoren, wobei jeder Vektor ein 2-Element ist und eine Achse darstellt. – anonymous