Я относительно новичок в matlab и пытаюсь реализовать преобразование Хафа, но, похоже, что-то не так с моим кодом, так как только некоторые строки обнаруживаются даже на простой фотографии. Буду признателен за помощь.
distance = sqrt((size(BW,1) - 1 )^2 + (size(BW,2) - 1)^2 );
rho = -ceil(distance):rhoStep:ceil(distance);
H = zeros((2 * ceil(distance/rhoStep)) + 1 , length(theta));
[edge_row, edge_col] = find(BW);
theta_rad = theta * pi/180;
for i = 1:length(edge_row)
y = edge_row(i);
x = edge_col(i);
for j = 1 : length(theta)
d = x*cos(theta_rad(j)) + y * sin(theta_rad(j)) + distance;
H(round(d), j) = H(round(d), j) + 1;
end
end