我需要在8x8塊中分割圖像的顏色通道(特別是「Cb」),以便修改DCT係數並在稍後重新組合它們。如何將數組轉換爲python中的圖像顏色通道?
我試圖做到這一點使用image.extract_patches_2d()
但是我似乎無法重組通道
from PIL import Image
from sklearn.feature_extraction import image
import numpy as np
pic = Image.open('lama.png')
pic_size = pic.size
ycbcr = pic.convert('YCbCr')
(y, cb, cr) = ycbcr.split()
acb = np.asarray(cb)
patches = image.extract_patches_2d(acb, (8, 8))
acb2 = image.reconstruct_from_patches_2d(patches, (500,500))
cb_n = Image.fromarray(acb2, 'L')
即使沒有任何改變補丁重組陣列不符合原來的通道:
CB保存爲圖像:
CB(代碼CB_N)從補丁修復:
那麼,有沒有什麼毛病的代碼?還是不可能使用image.reconstruct_from_patches_2d從路徑(塊)恢復顏色通道?
如果是這樣,有沒有更好的方式來做我所需要的?
感謝您的閱讀,感謝您的幫助。
非常感謝,它的工作原理! –