目的:将一副包含一个或多个矩形(圆形,三角形,正五边形,正六边形),且彼此独立不粘连的图像进行图像切割,提取出里面单独的形状,并利用占空比的方法判断图像的形状。
主程序代码:
%% 代码作用:连通域的分割,判断识别图像类型
% 输入图像中仅包含一个或多个矩形,圆形,三角形,正五边形,正六边形,彼此独立且不粘连
% 思路:
% 直接进行切割,且进行局部图像提取保存。然后利用占空比的方法判断图像的类型
% 说明:
% 暂时只能针对矩形,圆形,三角形,正五边形 ,正六边形的图形检测。如需添加
% 其他类型需要对ratio_search()函数进行扩充。
% 作者:cw 时间:2019.8.14
clc;
clear all;
t0 = clock;
%% 图像读入,灰度化,二值化,显示二值图
img=imread('TEST.jpg');
img = rgb2gray(img);
BW=~im2bw(img); % 背景用0表示,有效区域用1表示
figure;imshow(BW),title('二值显示');
%% 连通域切割,8连通域
% 图像连通域标记
[Local,image_num] = bwlabel(BW,8);
% RGB = label2rgb(Local);
% figure;imshow(RGB),title('rgb显示连通域');
% 连通域提取步骤:
% 1 先将图像分为5张,每张图只放一个标签区域;
% 2 删除个图中的无效区域;
% 3 创建元组来保存切割后的图像ÿ