查找二值图像连通区域的质心

来源:互联网 发布:杭州cnc编程招聘信息 编辑:程序博客网 时间:2024/04/29 03:36

研究摄像头的目的,在于对运动的物体进行定位,并提取特征值为下一步的运动控制做准备,当然,这之前需要基本的确定某一静态物体的位置,很容易让我们想到确定感兴趣区域的质心。下面代码是对一幅图像进行的处理:

image = imread('2.jpg');image = rgb2gray(image);thresh = graythresh(image);image = ~im2bw(image,thresh);%背景色和前景色互换imshow(image);[L,num] = bwlabel(image,8);%标记二值化图像中的连通部分plotx = zeros(1,1);%记录质心位置坐标的变量ploty = zeros(1,1);%%求质心sumx = 0;sumy = 0;area = 0;[height,width] = size(image);for i = 1 : heightfor j = 1 : widthif L(i,j) == 1sumx = sumx + i;sumy = sumy + j;area = area + 1;endendend%%质心坐标plotx(1) = fix(sumx / area);ploty(1) = fix(sumy / area);dis = dataset(plotx(1),ploty(1));%变量dis为质心位置坐标数据(行列)figure(2);imshow(image);hold onplot(ploty(1),plotx(1),'*');

在寻找质心的过程中,刚开始是找寻的是背景色连通区域的质心,而不是感兴趣部分的质心,针对这个问题,就二值化图像而言,最好的办法就是在二值化前加反向符号,即背景色和前景色互换,就OK了。今天到这里,后天接着探究动态质心的可行性~

下面是效果图:


0 0
原创粉丝点击