PSD文件保存层为PNG添加噪声的图像



我正在研究角点检测。我有一个有3层的PSD文件,我只想提取其中1层的角。

  1. 使用psd-tool提取图层:

    if layer.name == 'Layer 3':
    img = layer.as_PIL().save("tmp.png")
    
  2. 接下来我读取tmp.png文件并执行以下操作:

    img = cv2.imread(filename)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    (thresh, im_bw) = cv2.threshold(gray, 1, 255, cv2.THRESH_BINARY)
    cv2.imwrite('bw_image.png', im_bw)
    
    _ ,contours, hierarchy = cv2.findContours(im_bw, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours = sorted(contours, key=cv2.contourArea,reverse=True)[:1]
    cv2.drawContours(img, contours, -1, (0,255,0), 5)
    cv2.imwrite("image_processed.png", img)
    

但是如果我手动提取图层并保存它。该算法工作良好,并返回4个角点。

我了解到如果我们显示带有透明信息的PIL图像,它会自动以BMP格式显示。因此,我们必须粘贴一个透明层到实际的图像,然后保存为正确的格式。PNG。

相关内容

  • 没有找到相关文章

最新更新