提取图像中的标准杆,并坐标化
1.将RGB图像转化为灰度图
IM=imread('图片.jpg');
imshow(IM); //或者使用imview()显示图片,不会覆盖已有图像
grayIM=rgb2gray(IM);
figure,imshow(grayIM);
2.观察灰度图,由于光照原因,有很大一块区域亮度和标准杆的亮度相近,为了消除标准杆以外比较亮的区域而保留标准杆,故可用形态学方法去掉标准杆,而保留其它亮区域。再用灰度图减去处理后的图,便可以得到亮的标准杆的图。
形态学方法结构元素的选取:
观察标准杆的大小,x坐标和y坐标的范围近似为(157,172)和(182,278))(注:这里选取的标准杆的左半部分),故可选择比标准杆范围稍大,却比其它两区域小的结构元素。
结构元素选为ones(10,20),代码如下:
openIM=imopen(grayIM,ones(10,20));
figure,imshow(openIM);
newIM= abs(imsubtract(grayIM,openIM));
figure,imshow(newIM);
3.先处理图像的下半部分,故截取原图的一半。
[m n]=size(newIM);
downIM=newIM(0.5m:m,:); //使用时m必须替换为数值
figure,imshow(downIM);
绘画出图像的强度分布图 imhist(downIM)
通过观察强度分布可知,标准杆的亮度值较大,且分布比较集中,故可以将亮度较低的像素点去掉.
这里选择将亮度小于60的像素点去掉。
downIM(find(downIM<60))=0;
imhist(downIM);
imview(downIM);
4.观察处理后的图片,标准杆的形状比其它部分形状要狭长,可以考虑用形态学的方法将其它部分腐蚀掉。
结构元素选取:标准杆较长,而其它部分有的较宽,有的较圆,故可以用狭长的结构元素(小于标准杆)来腐蚀其它部分。
标准杆范围:x坐标和y坐标的范围近似为(157,172)和(182,278))
这里结构元素选取为:ones(40,1)。(比上方两侧的部分要宽)
openIM2=imopen(downIM,ones(40,1));
figure,imshow(openIM2);
注:这里ones(40,1)还能起到平滑标准杆轮廓的作用,去掉周围的离散点。40这个值可以通过实验来确定。
5.得到只有标准杆的灰度图后,就可以转化为二值图,然后经过处理得到标准杆中间轮廓的坐标。
阅读(628) | 评论(0) | 转发(0) |