我正在尝试编写一个程序,该程序可以检测我在纸上绘制的路径并给出坐标。我想用这些坐标来引导焊枪。
使用edge()
可以检测路径的边缘,但是无法检测路径的中间。我尝试使用for
循环对边缘坐标进行插值,但是不能。
这是我的代码:
%% defining & Addressing an Image
img0=imread('C:\Users\Sohrab\Downloads\Project\photo_2018-11-02_22-07-15.jpg');
img0=rgb2gray(img0);
img1=imresize(img0,0.6);
img1=medfilt2(img1,[10,10]);
%% Applying Edge Detection
img2=edge(img1,'sobel');
img3=edge(img1,'canny');
imgI=img3;
[Row,Col]=size(imgI);
%% Interpolation
for i = 1:1:Row
k=0;
ONPixel=0;
for j = 1:1:Col
if(imgI(i,j)==1)
ONPixel=ONPixel+j;
k=k+1;
end
end
imgI(i,:)=0;
if(k >= 2)
imgI(i,floor(ONPixel/k))=1;
end
end
%% showing Results
figure;
subplot(2,2,1)
imshow(img1)
title('ORGINAL IMAGE')
subplot(2,2,2)
imshow(img2)
title('SOBEl METHOD')
subplot(2,2,3)
imshow(img3)
title('CANNY Method')
subplot(2,2,4)
imshow(imgI)
title('Interpolation')
这是插值的结果:
结果不正确。
这是我用于计算的图像: