连接组件是图像分析中最常用的算法之一,本文主要介绍用该方法进行组件标记的方法,同时也可以使用其实现状态的统计。 具体内容可以详细阅读以下内容~
目录
连通手段连通手段标识连通手段状态统计连通组件
连通组件标记
概念:连通手段标识算法(connectedcomponentlabelingalgorithm )是图像分析中最常用的算法之一。函数: retval,labels=cv2 .连接的组件(图像,连接,类型) ) ) ) ) ) ) ) )。
输入
image,//输入二值图像,黑色背景connectivity=8,//连通区域,默认为8连通ltype=CV_32,//输出的labels类型,默认为CV_32S输出
retval,//num_labelslabels,//输出的标记图像,背景索引=0的示例:
导入CV2AS CV
导入编号为
src=cv.im读取(' pill.png ) ) 9500.163.com) ) )。
西班牙足球甲级联赛
src=cv .高斯蓝(src,(3,3,0 ) ) ) ) ) ) ) ) ) ) ) ) )。
灰色=CV.CVTColor (SRC,CV.Color _ BGR 2灰色) )。
ret,binary=cv.threshold (灰色,0,255,cv.thresh _ binary|cv.thresh _ Otsu ) ) ) ) ) ) ) ) ) ) )
cv.im show ('二进制',二进制) ) ) )。
cv.imwrite('binary.png ',二进制) )。
output=cv .连接的组件(二进制,连接=8,ltype=cv.CV_32S ) )。
数字标签=输出[0]
打印(编号标签) #输出: 5
标签=输出[1]
# #结构颜色
颜色=[ ]
财富:
b=NP.random.randint (0,256 ) ) ) ) ) ) ) ) ) ) )。
g=NP.random.randint (0,256 ) ) ) ) ) ) ) )。
r=NP.random.randint ((0,256 ) ) ) )。
Colors.append((b,g,r ) )
颜色[0]=(0,0,0 )
# #画连通图
h,w=格雷. shape
image=NP.Zeros () h,w,3 ),dtype=np.uint8) ) ) )。
财富:强
富兰克林范围(w ) :
image=颜色=标签
cv.imshow('coloredlabels ',图像) ) )。
cv.imwrite(labels.png,图像) )。
打印(' total componets : ',编号_标签-1) ) ) ) ) ) ) ) ) ) )到) ) ) ) ) )。
cv.waitkey(0) (等于) () ) (等于) ) (等于) ) ) ) ) ) ) ) ) ) )。
中央电视台(() ) 9501.163.com) ) )。
有色标签
连通组件状态统计
函数: retval、labels、stats、centroids=cv2 .连接组件(图像、连接、类型) )相关的统计信息被包含在输出stats的对象中,各个合并组件都有这样的输出结构。
CC_STAT_LEFT:接触块外接矩形左上角坐标的x位置信息CC_STAT_TOP:接触块外接左上角坐标的y位置信息CC_STAT_WIDTH:接触块外接矩形宽度CC_STAT_TOP:接触块外接矩形宽度Centroids基于像素数输出的示例是每个连接组件的中心位置坐标(x,y )。
导入CV2AS CV
导入编号为
src=cv.im读取('日报. png ' ) 9502.163.com) ) ) ) ) ) ) ) )。
西班牙足球甲级联赛
src=cv .高斯蓝(src,(3,3,0 ) ) ) ) ) ) ) ) ) ) ) ) )。
灰色=CV.CVTColor (SRC,CV.Color _ BGR 2灰色) )。
ret,binary _=cv.threshold (灰色,0,255,cv.thresh _ binary|cv.thresh _ Otsu ) ) ) ) ) ) ) ) )
通过# # #开运算去除外部干扰
kernel=cv.getstructuringelement (cv.morph _ rect,(3,3 ) ) ) ) ) ) )。) ) ) ) ) ) ) ) ) ) ) )
binary=cv.morphology ex (二进制,cv.MORPH_OPEN,kernel ) )。
cv.im show ('二进制',二进制_ ) )。
num_labels,labels,stats,centers=cv.connectedcomponentswithstats (二进制,连接性=8,ltype=cv.cv_ )
颜色=[ ]
财富:
b=NP.random.randint (0,256 ) ) ) ) ) ) ) ) ) ) )。
g=NP.random.randint (0,256 ) ) ) ) ) ) ) )。
r=NP.random.randint ((0,256 ) ) ) )。
Colors.append((b,g,r ) )
颜色[0]=(0,0,0 )
image=美国航空公司(SRC )
财富范围(1,数字标签,1 ) :
x,y,w,h,区域=状态
cx,CY=中心
# #表示中心位置
CV.Circle (图像,) NP.int32 ) cy ),2,) 0,255,0 ),2,8,0 ) )
画外接矩形
v .矩形(图像,) x,y ),x瓦,y h ),颜色[ t ],1,8,0 ) )
电脑文字(影像,'编号' str (t ) t,) x,y ),电脑字体_赫兹_简单, 5,(0,0,255 ),1 );
打印(标签索引% d,区域标签: % d (t,区域) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
cv.imshow('coloredlabels ',图像) ) )。
cv.imwrite(labels.png,图像) )。
打印(总数: ),数字标签-1() ) ) ) ) ) ) ) ) ) ) ) )到) ) ) ) ) ) ) )。
input=cv.im读取('格兰. png ' ) ) ) ) )。
连接组件状态演示(输入) 9503.163.com)。
有色标签
未完待续~
更多的Opencv教程将持续发布!
注意啊~