[如果我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)
如果您确实想要双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')
输入:
结果:
请注意,您可以像这样保存OpenCV图像,但是必须首先将其BGR顺序转换为常规RGB顺序。您可以使用:
RGB = cv2.cvtColor(BGRimage, cv2.COLOR_BGR2RGB)
或纯正的Numpy:
RGB = BGRimage[...,::-1]
关键字:Python,图像处理,棒,TIFF,TIF,LZW,压缩,压缩,双层,双层
imwrite使用此功能只能保存8位(在PNG,JPEG 2000和TIFF情况下为16位无符号(CV_16U))单通道或3通道(具有“ BGR”通道顺序)图像。