2017-06-18 21 views
0

画像をブロック(例えば、8×8ブロック)に分割し、ブロックごとにヒストグラム機能を実行し、別々の画像ではなく新しい画像に結果を保存することは可能でしょうか?Q:画像をブロックに分割する

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

可能な複製(https://stackoverflow.com [Pythonでの複数の部分に画像を分割する方法]/questions/5953373/how-to-split-image-in-python) – moritzg

+0

私はしません画像を分割するアリ。そして、私は一度に画像に関数を適用したくないので、8x8ブロックごとに画像に関数を適用したいと思います。 – Streem

答えて

2

ブロックを画像に挿入してみませんか?

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

関連する問題