角落探测实现
我们如果需要探测某张图中某件物品的角落,其实很多时候哈里斯角落探测法并不适用,因为它会探测符合条件的所有角落。比如下面这张图
这里我们只希望探测到桌子的拐角,如果使用哈里斯角落探测就会一并探测到旁边窗子的拐角。
所以我们实现步骤如下;
先给需要探测的图片进行预处理
我们首先把RGB格式的图片更改为HSV格式,HSV格式的图片更容易地调整颜色,颜色深度,画面整体亮度。这里是我们进行处理过的二值图像;
这里我们使用matlab实现,因为matlab里有现成的App可以用来提取图像颜色,并且生成函数,我们使用Colorthresholder 来提取颜色,可以得到图像的遮罩以及原图的二值图,如果得到的二值图像有噪点之类的问题我们可以使用 imagesegmenter 作进一步去噪处理;
file_path = 'D:\coner_detection\datasets2\';%change to ur own path
img_path_list=dir(strcat(file_path,'*.JPG'));
img_num=length(img_path_list);
len = size(img_path_list);
for j=18:18;
figure(j);
image_name=img_path_list(j).name;
image=imread(strcat(file_path,image_name));
[step,masked]=createMaskfortable(image);%extract color for table
Nimage=segimg(masked,step);%change to binary pic
图像经过处理后可以看出我们椅子的颜色和桌子相近所以也被提取出来了,
L = bwlabel(Nimage);%mark related area
stats = regionprops(L);%extract pciture inform
Ar = cat(1, stats.Area