Ich möchte eine Gewichtsmatrix für die algebraische Rekonstruktionsmethode finden. Dazu muss ich den Schnittpunkt der Linie mit dem Gitter finden. Ich kann direkten Linienschnittpunkt mit Linie finden, aber ich muss das geschnittene Liniensegmentgitter Nummer weise speichern. Nehmen wir an, wenn sich das erste Quadrat des Gitters nicht mit dem Gitter schneidet, dann setze das erste Element der Gewichtsmatrix auf Null. hier Code, i für Leitungsschnitt versucht:Wie bekomme ich ein Rechtecksegment in Matlab?
ak = 3:6
aka = 3:6
x = zeros(size(aka))
y = zeros(size(ak))
for k = 1:length(ak)
line([ak(1) ak(end)], [aka(k) aka(k)],'color','r')
end
% Vertical grid
for k = 1:length(aka)
line([ak(k) ak(k)], [aka(1) aka(end)],'color','r')
end
hold on;
X =[0 15.5]
Y = [2.5 8.5]
m = (Y(2)-Y(1))/(X(2)-X(1)) ;
c = 2.5 ;
plot(X,Y)
axis([0 10 0 10])
axis square
% plotting y intercept
for i = 1:4
y(i) = m * ak(i) + c
if y(i)<2 || y(i)>6
y(i) = 0
end
end
% plotting x intercept
for i = 1:4
x(i) = (y(i) - c)/m
if x(i)<2 || x(i)>6
x(i) = 0
end
end
z = [x' y']
Erklärung des Problems:
I eine Linie haben, die durch die Parameter definiert m, h
, wo y = m*x + h
Diese Linie über einem Gitter geht (dh Pixel). Für jedes Quadrat (a, b)
des Gitters (dh das Quadrat [a, a+1]x[b, b+1]
), möchte ich bestimmen, wenn die gegebene Linie dieses Quadrat oder nicht kreuzt, und wenn ja, was ist die Länge des Segments im Quadrat. Damit kann ich die Gewichtsmatrix aufbauen, die für die algebraische Rekonstruktionsmethode essentiell ist.
Ich weiß nicht, worum es geht, dass Sie Hilfe benötigen. Ihr Code zeichnet eine Linie und ein Gitter mit der Gittergröße 1 von 3 bis 6. Und gibt die y-Werte bei 3,4,5 und 6 zurück. Was wollen Sie als Endergebnis und was ist das genaue Problem? –
@TheMinion Ich habe eine Zeile, definiert durch die Parameter m, h, wobei y = m * x + h Diese Zeile geht über ein Raster (d. H. Pixel). Für jedes Quadrat (a, b) des Gitters (dh das Quadrat [a, a + 1] x [b, b + 1]) möchte ich bestimmen, ob die gegebene Linie dieses Quadrat kreuzt oder nicht, und wenn ja, Wie groß ist die Länge des Segments im Quadrat? Damit kann ich die Gewichtsmatrix aufbauen, die für die algebraische Rekonstruktionsmethode essentiell ist. –
@ParthPatel Sie können den Titel der Frage wie folgt ändern: "Wie Sie ein Linienrechteck-Schnittpunktsegment in Matlab erhalten". Ich beantwortete Ihre Frage unten und gab ein Beispiel, wie es geht. – DontCareBear