這對我來說是一個持續的挑戰。我試圖用openCV將兩個3 RGB圖像組合成一個6通道TIFF圖像。在OpenCV中編寫4個以上的通道圖像Python
到目前爲止,我的代碼如下:
import cv2
import numpy as np
im1 = cv2.imread('im1.jpg')
im2 = cv2.imread('im2.jpg')
merged = np.concatenate((im1, im2), axis=2) # creates a numpy array with 6 channels
cv2.imwrite('merged.tiff', merged)
我一直在使用的OpenCV的分裂()和合並()方法,並得到相同的結果
import cv2
import numpy as np
im1 = cv2.imread('im1.jpg')
im2 = cv2.imread('im2.jpg')
b1,g1,r1 = cv2.split(im1)
b2,g2,r2 = cv2.split(im2)
merged = cv2.merge((b1,g1,r1,b2,g2,r2))
cv2.imwrite('merged.tiff', merged)
當我運行也試過imwrite()函數我得到以下錯誤:
OpenCV Error: Assertion failed (image.channels() == 1 || image.channels() == 3 || image.channels() == 4) in cv::imwrite_, file C:\builds\master_PackSlaveAddon-win32-vc12-static\opencv\modules\imgcodecs\src\loadsave.cpp, line 455 Traceback (most recent call last): File "", line 1, in cv2.error: C:\builds\master_PackSlaveAddon-win32-vc12-static\opencv\modules\imgcodecs\src\loadsave.cpp:455: error: (-215) image.channels() == 1 || image.channels() == 3 || image.channels() == 4 in function cv::imwrite_
這兩個圖像尺寸(900X1200)是相同的。我在想,openCV不能爲tiff圖像寫入超過4個通道(RGBA),並且我沒有找到替代方法來編碼此圖像。
我在創建我自己的函數來編寫帶有適當頭文件的二進制數據,但這種方式比我想去的要深。
openCV中有另一個函數,我可以使用它將工作,或另一個庫,可以寫這個numpy數組TIFF與6個通道?
謝謝你。雖然這不完全是我期待的,但它可以讓我做到我想要的。之前我沒有這樣想過。 – tpubbsGIS