Если изображения остаются такими, вы, вероятно, можете сделать довольно простой способ, просто подсчитывая биты построчно (но это работает, только если они остаются горизонтальными или вертикальными). Это даст вам своего рода гистограмму вдоль координаты y, которая позволит вам усреднить вашу координату y для одной из линий.
% Read the image
img = imread('To_detect_curves.png');
% Convert it to BW
img = rgb2gray(img);
% Get the size of the image for the loops
[width,height] = size(img);
bits_per_line = zeros(height,1);
% Sum over all lines (rows)
for idx=1:height
bits_per_line(idx) = sum(img(idx,:));
end
plot(1:height,bits_per_line)
В результате у вас будет что-то вроде следующего, где вы можете легко определить координату Y для ваших линий.
а>
Это, конечно, не поможет вам с более сложными изображениями, но для изображения, которое вы предоставили, должно подойти. Если у вас есть дополнительная информация о том, что именно вы хотите сделать, сообщите нам об этом.
person
Martin
schedule
18.01.2016