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
微信扫描下方的二维码阅读更多精彩内容
每日分享到群里,或者推荐给朋友会得大量积分,机会可以兑换微信零钱红包,具体请点击这里,得到了微信红包可以用来支持大飞哥
大飞哥能不能加鸡腿就看各位了!
开发者微信
开发者微信反馈BUG或者VIP可以添加,其他情况反馈可能不及时,见谅
版权声明
初衷是提供高清手机电脑壁纸等图片素材免费分享下载,禁止商用。图片素材来源网络,版权归原作者所有,若有侵权问题敬请告知我们!
【友情提醒】:
因平台原因不易展示大尺度写真,有的写真展示越少代表此套写真越性感,特别是xiuren等写真每一套写真完整套图50-100张不等。更多内容的欣赏请移步 点击这里
【更多图集移步】:
每日更新-点击这里
漂亮小姐姐-点击这里
性感美女-点击这里
清纯女孩-点击这里
xiuren专栏-点击这里
整站资源下载-点击这里