接缝跟踪与图像处理

时间:2018-11-12 10:27:49

标签: matlab image-processing

我正在尝试编写一个程序,该程序可以检测我在纸上绘制的路径并给出坐标。我想用这些坐标来引导焊枪。

使用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')

这是插值的结果: (And this is the result.)

结果不正确。

这是我用于计算的图像:

(i did my calculation on image that i attached.)

0 个答案:

没有答案