【问题标题】:how to make a threshold for predicted image from uNet如何为来自 uNet 的预测图像设置阈值
【发布时间】:2021-03-26 09:30:43
【问题描述】:

我正在为显微图像训练 uNet 模型,在使用以下代码预测图像时

 image = cv2.imread(image_path)
mask = cv2.imread(mask)

img = image
image = cv2.resize(image, (IMG_HEIGHT, IMG_WIDTH))
image = np.expand_dims(image, axis=0)
prediction = loaded_model.predict(image)

prediction = prediction[0]*255

prediction = cv2.medianBlur(prediction, 5)
prediction = cv2.adaptiveThreshold(prediction, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)

预测图像中的像素是这样的

adaptiveThreshold 函数不会接受预测,因为它的像素值是浮动的。 我无法为该预测设定一个二值化阈值,我做错了什么吗? 感谢您的帮助!

【问题讨论】:

    标签: python tensorflow deep-learning image-segmentation unity3d-unet


    【解决方案1】:

    如果<0.5>0.5,我假设您希望将预测值转换为 0 或 1。 你可以使用np.round,例如:

    >>> x=np.array([0.1,0.8,0.2,0.3,0.6])
    >>> np.round(x)
    
    array([0., 1., 0., 0., 1.])
    

    【讨论】:

    • 不完全是,round 只会舍入一个数字,我想要更多。我也希望有更有效的方法。
    猜你喜欢
    • 2019-11-30
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2018-10-15
    • 2020-10-07
    相关资源
    最近更新 更多