2017-06-18 59 views
0

我想知道是否可以將圖像分塊爲例如8x8塊(64 pixels per block)並對每個塊執行直方圖功能並將結果保存到新圖像中而不是單獨圖像?問:將圖像分塊Python

def apply_histogram(block): 
    h, b = np.histogram(block.flatten(), 256, normed=True) 
    cdf = h.cumsum() 
    cdf = 255 * cdf/cdf[-1] 
    return np.interp(block.flatten(), b[:-1], cdf).reshape(block.shape) 
+0

的可能的複製[如何拆分圖像轉換成Python中的多件(https://stackoverflow.com/questions/5953373 /如何拆分圖像到多個在Python中) – moritzg

+0

我不w螞蟻分裂的形象。我不想馬上對圖像應用函數,我想將圖像中的函數應用於每個8x8塊。 – Streem

回答

2

爲什麼不通過圖像中的所有8x8塊?

image = ... 
block_img = np.zeros(image.shape) 
im_h, im_w = image.shape[:2] 
bl_h, bl_w = 8, 8 

for row in np.arange(im_h - bl_h + 1, step=bl_h): 
    for col in np.arange(im_w - bl_w + 1, step=bl_w): 
     block_img[row:row+bl_h, col:col+bl_w] = apply_histogram(image[row:row+bl_h, col:col+bl_w]) 

image

Cameraman image

block_img

Histogram applied to blocks

+0

謝謝你的工作:) – Streem