投影法原理:
数字离散图像经过二值化后得到的是一个整体,其中包括了图像与背景和各像素点之间连接关系,要想找出图像中心点,即中心点的位置坐标,我们假设经二值化接触线的图像中第i行,j列的像素值为g(i,j),这样可有下式成立:
g(i,j)=1/0(其中在背景上为0,在图像上为1,)
利用投影法,则第j列方向上的积分投影为 ,其中L为列的长度,通过对接触线图像可以得到,背景与背景之间竖直方向的积分投影为0,(但是由于噪声的存在,实际上不可能为0),而图像的竖直方向积分投影不为0,通过对二值化的图像的每一列的像素点积分求和,由于图像存储的要求,将最左面一列(或最右边一列)设为第一列,列切分自左向右顺序进行,这样就可以求出每一列像素的总个数,一般用
sum函数来求像素的总个数,对本实验拍摄的图像进行投影法提取中心点的指令如下:
a=imread('3.jpg');
b=rgb2gray(a);
[i,j]=find(b>=200);
e=zeros(size(b));
for n=1:length(i)
e(i(n),j(n))=b(i(n),j(n));
end
imshow(e);
BW2 = bwmorph(e,'remove');
BW3 = bwmorph(e,'skel',Inf);
figure; imshow(BW2);
figure; imshow(BW3);
f=sum(BW3);
imshow(e);
plot(f);
[y,i]=max(f);
g(i,=255;
hold on;
h=plot(g);
set(h,'Color',[1 1 1]);:
这样就可以把一图形的投影中心线找出来,我本科论文就做过那玩意.你看看吧,看行不行,
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试