您如何在opencv中输出和索引(黑白)tiff图像

问题描述 投票:0回答:2

[如果我imwrite二值化的图像,则仅创建灰度图像文件,而不创建indexed = 2文件。我需要在imwrite上执行哪些选择?如果可能的话,我也希望LZW压缩。

  orig = cv2.imread('rgb.tiff')
  work = cv2.cvtColor(orig, cv2.COLOR_BGR2GRAY)
  work = cv2.ximgproc.niBlackThreshold(work, 255, cv2.THRESH_BINARY, 41, -0.2,
    binarizationMethod=cv2.ximgproc.BINARIZATION_NICK)
  cv2.imwrite('bw.tiff', work)

grayscale vs indexed

opencv tiff indexed-image
2个回答
1
投票

如果您确实想要双LZW压缩的TIFF,则可以使用wand编写这样的代码:

#!/usr/bin/env python3

from wand.image import Image

# Open image and save as bi-level LZW-compressed version
with Image(filename='image.tif') as img: 
    img.compression='lzw'
    img.type='bilevel'
    img.save(filename='result.tif')

输入:

enter image description here

结果:

enter image description here

请注意,您可以像这样保存OpenCV图像,但是必须首先将其BGR顺序转换为常规RGB顺序。您可以使用:

RGB = cv2.cvtColor(BGRimage, cv2.COLOR_BGR2RGB)

或纯正的Numpy:

RGB = BGRimage[...,::-1]

关键字:Python,图像处理,棒,TIFF,TIF,LZW,压缩,压缩,双层,双层


0
投票

imwrite使用此功能只能保存8位(在PNG,JPEG 2000和TIFF情况下为16位无符号(CV_16U))单通道或3通道(具有“ BGR”通道顺序)图像。

© www.soinside.com 2019 - 2024. All rights reserved.