python物体标识怎么实现
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"python物体标识怎么实现",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python物体标识怎么实现"这篇文章吧。1、读取彩色
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
行业网络安全顶层设计
国产串口终端服务器多少钱
如何用ccdc数据库查找
应用技术学院数据库第三章
评弹视频软件开发
电子支付极其网络安全研究
定时下载通达信数据库
单位2021网络安全工作报告
新型病毒网络安全
中国网络安全政策
无锡节能刀片服务器
想删了书客数据库
舟山桌面软件开发项目
对国家网络安全 你怎么看
天玥网络技术有限公司
服务器隐私安全吗
北京鸿融网络技术有限公司
能源管理系统软件开发
网络安全研究院郑大
湖南巨龙网络技术有限公司印章
网吧服务器怎么下载软件
软件实施为什么要会数据库
天津网络软件开发条件
嵌入式软件开发免费咨询
上海购买网络技术转让哪里好
河北网络安全知识问答
横拟股票软件开发
有线网络技术能手考试答案
直接调用股票数据库
汕头自主可控软件开发供应商家