Search code examples
pythonimagebinarycomputer-visionpng

Save 1 bit deep binary image in Python


I have a binary image in Python and I want to save it in my pc. I need it to be a 1 bit deep png image once stored in my computer. How can I do that? I tried with both PIL and cv2 but I'm not able to save it with 1 bit depth.


Solution

  • Use:

    cv2.imwrite(<image_name>, img, [cv2.IMWRITE_PNG_BILEVEL, 1])
    

    (this will still use compression, so in practice it will most likely have less than 1 bit per pixel)