【发布时间】:2018-07-26 18:26:33
【问题描述】:
我是 OpenCV 的新手,所以如果我的问题对你来说很愚蠢,请多多包涵。
我想擦除这些边框,所以我想到了边缘检测,如果我可以将这些透明边框转换为白色,这将很容易做到。在文档中我发现你可以这样做:
img = cv2.imread("./Green/image-000.png", 1)
cv2.imwrite('../image-000.png', img)
这会擦除 png 图像的 Alpha 通道,但会将其变为黑色。 是否有类似的东西使边框变白? 或者有没有更简单的方法来擦除这些边界? 如果你能帮助我,你会让我很开心!
PS:我使用 Python 2.7 和 OpenCV 3.4
【问题讨论】:
-
为什么将它们“擦除”为黑色或白色?如果不需要,为什么不完全剪掉它们?
-
边框大小因图片而异,因此我无法输入特定值进行裁剪。也许我想得太复杂了
-
你说它们是透明的——所以你知道它们在哪里——它们就是图像透明的地方。
-
不知道图片在哪里透明。我怎样才能知道呢?
-
打印出第一行像素。它们按 BGRA 顺序排列,因此第一个像素的透明度将是第 4 个值,第二个像素的透明度将是第 8 个值。您将看到像素不再透明的阶跃变化。