代码之家  ›  专栏  ›  技术社区  ›  S.EB

在python中,如何在只有边框的图像上显示对象的覆盖?

  •  0
  • S.EB  · 技术社区  · 5 年前

    enter image description here 我有3个图像:核磁共振成像,地面真相(gt)和从算法(res)获得的结果。我应该如何用python编写类似表示的代码?或者如果有任何可用的免费代码,请在这里分享。 谢谢

    0 回复  |  直到 5 年前
        1
  •  3
  •   Masoud    5 年前

    如果地面的真相和 res 如果是2D遮罩,则可以从灰度图像创建RGB图像,并更改其中像素的颜色 物件 指示到。下面是一个使用Canny边缘检测器在图像上突出显示提取的边缘的示例 sample

    import cv2
    from matplotlib import pyplot as plt
    
    img = cv2.imread('brain.png',0)
    edges = cv2.Canny(img,50,200)   # canny edge detector
    
    img = cv2.merge((img,img,img))  # creat RGB image from grayscale
    img2 = img.copy()
    img2[edges == 255] = [255, 0, 0]  # turn edges to red
    
    plt.subplot(121),plt.imshow(img)
    plt.title('Original Image'), plt.xticks([]), plt.yticks([])
    plt.subplot(122),plt.imshow(img2)
    plt.title('Edge Highlighted'), plt.xticks([]), plt.yticks([])
    
    plt.show()
    

    result