python物体标识怎么实现
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"python物体标识怎么实现",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python物体标识怎么实现"这篇文章吧。1、读取彩色
千家信息网最后更新 2026年10月31日python物体标识怎么实现
这篇文章主要为大家展示了"python物体标识怎么实现",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python物体标识怎么实现"这篇文章吧。
1、读取彩色图像进行灰度化和二值化。
def get_binary_img(img): # gray img to bin image bin_img = np.zeros(shape=(img.shape), dtype=np.uint8) h = img.shape[0] w = img.shape[1] for i in range(h): for j in range(w): bin_img[i][j] = 255 if img[i][j] < 255 else 0 return bin_img# 调用file_name = "./test.bmp"img = cv2.imread(file_name)# 灰度化gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化bin_img = get_binary_img(gray_img)
2、目标标志,每个物体的像素值是该物体的标志,为计算面积打下基础。
# 标记目标def label_region(bin_img,width,height): visited = np.zeros(shape=bin_img.shape,dtype=np.uint8) label_img = np.zeros(shape=bin_img.shape, dtype=np.uint8) label = 0 for i in range(height): for j in range(width): if bin_img[i][j] == 255 and visited[i][j]==0 : //找到种子点 # visit visited[i][j] = 1 label += 1 label_img[i][j] = label # label label_from_seed(bin_img, visited, i, j, label, label_img) return label_img# 区域增长法进行标记def label_from_seed(bin_img,visited,i,j,label,out_img): directs = [(-1, -1), (0, -1), (1, -1), (1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0)] seeds = [(i,j)] height = bin_img.shape[0] width = bin_img.shape[1] while len(seeds): seed = seeds.pop(0) i = seed[0] j = seed[1] if visited[i][j] == 0: visited[i][j] = 1 out_img[i][j] = label # 以(i,j)为起点进行标记 for direct in directs: cur_i = i + direct[0] cur_j = j + direct[1] # 非法 if cur_i < 0 or cur_j < 0 or cur_i >= height or cur_j >= width: continue # 没有访问过 if visited[cur_i][cur_j] == 0 and bin_img[cur_i][cur_j] == 255: visited[cur_i][cur_j] = 1 out_img[cur_i][cur_j] = label seeds.append((cur_i,cur_j))
3、通过遍历标记的图像,统计每个编号中出现的像素数,可以得到不同区域的面积大小。
def get_region_area(label_img,label): count = { key: 0 for key in range(label + 1)} start_pt = {key:(0,0) for key in range(label + 1)} height = label_img.shape[0] width = label_img.shape[1] for i in range(height): for j in range(width): key = label_img[i][j] count[key] += 1 if count[key] == 1: start_pt[key] = (j,i) return count,start_pt以上是"python物体标识怎么实现"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
物体
标记
标识
内容
篇文章
像素
区域
图像
标志
灰度
目标
面积
学习
帮助
不同
像素数
基础
大小
彩色
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司税收优惠
互联网巨头反垄断金融科技
互联网中国科技
互联网科技的发展
互联网科技小贷
上海喔噻互联网科技
互联网科技公司介绍
深圳国际航运科技和互联网
贵州叶脉互联网科技有限公司所属行业
宁夏科技产业互联网案例
深圳育鹏互联网科技有限公司招聘
企晟互联网信息科技有限公司
互联网科技和法律行业
四川慕妮娅互联网科技有限公司
科技大学互联网
互联网科技如何创业
每天都有哪些好的互联网科技
互联网科技实习生岗位
郑州欣桑互联网科技有限公司
东营紫格互联网科技
河南云网互联网络科技有限公司
互联网扶贫科技
北京互联网科技公司
苏州互联网科技贷款公司
美国互联网前沿科技
开启互联网科技时代小说
成都玖崟互联网科技有限公司乐商圈怎么样
隆华科技工业互联网
湖南诚度互联网科技有限公司
张家口科技产业互联网平台