2图像连通域_每日习题-图像处理-4、8邻接连通域标记-2020.5.1

阅读: 评论:0

2图像连通域_每⽇习题-图像处理-4、8邻接连通域标记-
2020.5.1
题⽬地址:gzr2017/ImageProcessing100Wen
# 第58题 4邻接连通域标记
def connected_component_labeling_4(image):
H, W, C = image.shape
加工pcb板label = np.zeros((H, W), dtype=np.int)
# 将⽩⾊区域标记为1
label[image[:, :, 0] > 0] = 1
# 建⽴⼀个标签盒,表⽰表内所检测到的所有⽩⾊连通域
LT = np.zeros((1, H*W)).astype(np.uint8)
城市通讯
n = 1
for h in range(H):
for w in range(W):
if label[h, w] == 0:
continue
# 判断该像素上⽅和左侧是否已被标记雷击次数
c_up = label[max(h-1, 0), w]
c_left = label[h, max(w-1, 0)]
# 如上⽅和左⽅未标记,则视为完全未标记的区域
# 有可能重复计算同⼀区域,需要进⾏标签筛选
if c_up < 2 and c_left < 2:
n += 1
label[h, w] = n
# 若为已标记的区域
else:
c_near = [c_up, c_left]
# 剔除0标签,也就是⿊⾊区域
_c_near = [a for a in c_near if a > 1]
c_min = min(_c_near)
label[h, w] = c_min
min_label = c_min
# 将新标签加⼊标签盒中并检验重复
for index in _c_near:
if LT[0, index] != 0:
min_label = min(min_label, LT[0, index])
for index in _c_near:
LT[0, index] = min_label
# 标签重新按由⼩到⼤排列
count = 1
for l in range(2, n+1):
flag = True
for i in range(n+1):
if LT[0, i] == l:
纳米碳化硅if flag:
count += 1
flag = False
LT[0, i] = count
# 标签区域上⾊
Colors = [[0, 0, 255], [0, 255, 0], [255, 0, 0]]
result = np.zeros_like(image).astype(np.uint8)
for i, lt in enumerate(LT[0, 2:]):铅封螺丝
result[label == (i+2)] = Colors[lt % len(Colors)]
return result
# 第59题 8邻接连通域标记
def connected_component_labeling_8(image):
小型变速箱
H, W, C = image.shape
label = np.zeros((H, W), dtype=np.int)
# 将⽩⾊区域标记为1
label[image[:, :, 0] > 0] = 1
如有任何问题或错误,欢迎评论区讨论和指正

本文发布于:2023-06-19 05:32:15,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/144339.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:标记   标签   区域   评论   欢迎   图像处理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图