Я хочу нарисовать красную линию на краю этого изображения, я хотел сделать это с помощью линейной регрессии, и я уже получил точки края и нарисовал лучшую линию через точки на графике, но Я не мог понять, как использовать информацию, чтобы нарисовать ту же линию на моем исходном изображении.
Image = imread('55-1_a.jpg');
imshow(Image)
binary_Image = imbinarize(Image);
[PIC_X, PIC_Y] = size(binary_Image);
imshow(binary_Image)
% i creat a matrix with two columns and PIC_X-1 rows
black_pixel_on_edge = zeros(PIC_Y , 2); % in each row i will save the lowest black point to use it later in the linear regression
for k = 1 : PIC_Y % i go through the columns of the image
black_pixel_on_edge(k, 1) = k;
for k2 = 1000 : 2000% i o through the rows
if( binary_Image(k2, k) == 0)%if the pixel is black i should save it in my array(WIDTH)
black_pixel_on_edge(k, 2) = k2;
end
end
end
%draw all the points from my Matrix
scatter(black_pixel_on_edge(:,1),black_pixel_on_edge(:,2));
axis equal tight;
h1 = lsline;% draw a line with linear regression
h1.Color = 'r';
%save the data of the red line
p2 = polyfit(get(h1,'xdata'),get(h1,'ydata'),1);
Slope_Of_Line = p2(1, 1);
Hight_Of_Line = p2(1, 2);
% here i just want to draw the same red line on my original 'Image'