图像语义分割模型运行结果解析画图

目前在做分割模型的部署工作,在部署调试中我们想看到网络输出层的结果图。分类任务的网络输出结果就是一个概率图,也就是把概率图可视化,该程序同样适用于热力图可视化等。
代码

# coding=utf-8

import numpy as np
import cv2
import os
import sys

#命令行执行时第一个参数为输出结果保存位置路径,第二个参数为阈值
out_path = sys.argv[1]  #网络模型输出文件保存的位置
threshod = sys.argv[2]
#我目前的任务是分割的二分类,即只要区分前景和背景,用阈值区分输出的概率图
x = 0
for root, dirs, files in os.walk(out_path):#遍历所有的网络输出结果
    for d in dirs:
        print(d) #打印子资料夹的个数
    for file in files:
        x = x+1
        print(file)
        #讀入圖像
        img_path = root+'/'+file
        #img = cv2.imread(img_path,1)
        result_bin = np.fromfile(img_path, dtype=np.float32)#直接拿到的网络输出通常是二进制32位浮点,具体是否需要修改解码规格还要看你当前的网络状态
        
        img = result_bin.reshape(400,504) #网络的输出通常是一个一维向量,此时根据实际你的图像w h进行reseize操作
        #img = img[:, 4:]
        #print("max data in img:",img.max)
        
        for i in range(399):#给全部的像素点按照阈值划分前景和背景
            for j in range(503):
                if img[i,j] >= float(threshod):
                    img[i,j] = 255.
                else:
                    img[i,j] = 0.
                    
        #img [img < threshod] = 0. #这种阈值划分方式也可以,和上面的二选一
        #img [img >= threshod] = 0.5
        cv2.imshow("result", img)
        cv2.imwrite(img_path + '_res.jpg', 255*img)
        cv2.waitKey(100)    


防止万一的留言看不到 V: fjj19930707

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值