簡體   English   中英

如何在Python OpenCV中讀取TIFF圖像的alpha通道?

[英]How to read the alpha channel of a TIFF image in Python OpenCV?

我想使用Python OpenCV從tiff圖像中讀取alpha通道。 我正在使用Enthought Canopy和OpenCV 2.4.5-3模塊。

我使用cv2.imread跟隨OpenCV網站的教程,但它似乎不起作用。

我現在擁有的是:

import cv2
image = cv2.imread('image.tif', -1)

然后我使用: print (image.shape) ,它仍然顯示print (image.shape) )。 但是我使用Matlab來讀取相同的圖像,我可以看到這個圖像的尺寸是(8192,8192,4)。

我不知道該怎么做才能讀取此圖像的alpha通道。

提前致謝!!

這是一個老問題,但萬一其他人偶然發現它:如果img.tiff是一個4通道TIFF,那么

import cv2
img = cv2.imread('img.tiff', cv2.IMREAD_UNCHANGED)
print img.shape 

產率(212296,4)如預期。

如果你然后使用

channels = cv2.split(img)

你可以引用alpha層( channels[3] ) - 例如,作為掩碼。

這個想法取自我如何使用Gimp / OpenCV Color將圖像分成彩色RGB層? 巧妙地使用偽圖層並merge以便以其實際顏色恢復各個RGB圖層。

我在通過PIL庫將原始圖像轉換為RBGA格式時找到了解決這個問題的方法。

from PIL import Image
import numpy as np
import cv2

path_to_image = 'myimg.png'
image = Image.open(path_to_image).convert('RGBA')
image.save(path_to_image)

image = cv2.imread(path_to_image, cv2.IMREAD_UNCHANGED)
print image.shape

出>(800,689,4)

我解決了同樣的問題:

pip install --upgrade opencv-python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM