老师又给我画了大饼
没办法 只能按照他们的想法做个尝试
上一篇的方法还没进行下去
就被叫停 又更新了一个新的想法
这里记录一下
我的尝试过程
一、图片膨胀
首先使用代码对道路进行膨胀
这里的代码
import cv2
import numpy as np
img = cv2.imread(gt_dir+name, 0)
kernel = np.ones((7, 7), np.uint8)
img_dilate = cv2.dilate(img, kernel, iterations = 1)
cv2.imwrite(gt_dir+name+'_mask.png',img_dilate.astype(np.uint8))
img – 目标图片
kernel – 进行操作的内核,默认为3×3的矩阵
iterations – 膨胀次数,默认为1
我把kernel改成70确实就很明显
膨胀后:
但是存在一个问题 这个代码读取保存的图像是8位深度的
而我们需要的是24位的
imwrite没有直接写入RGB的参数
主要是在imread读取的是什么格式那么保存的就是什么格式的
那么我们要保存24位的就要这样写
img = cv2.imread(gt_dir+name, cv2.IMREAD_COLOR)
kernel = np.ones((7, 7), np.uint8)
img_dilate = cv2.dilate(img, kernel, iterations = 1)
cv2.imwrite(gt_dir+name+'_mask.png',img_dilate.astype(np.uint8))
``
第一步完成
二、计算iou
首先原iou为
Get miou.
test_mIoU: 72.79
test_mPA: 80.12
Get miou done.
膨胀real图片之后,不变predict的iou为
Get miou.
test_mIoU: 67.22
test_mPA: 69.53
Get miou done.
如果把pre膨胀 不变real:
Get miou.
test_mIoU: 69.79
test_mPA: 86.76
两个都膨胀:
Get miou.
test_mIoU: 74.72
test_mPA: 81.2
Get miou done.