简体   繁体   中英

Divide images into blocks and compare each corresponding block

Hi I have a set of images of size 200x200 and I want to divide these images into 10 blocks of size 20x20(each image). After the images are divided into blocks,

1) I want to compare 1st block of image 1 with 1st block of image2, image 3 and 2nd block with 2nd block of image2, image 3 and so on.

2)After comparing blocks the block with maximum value should be used and put in a final image such that the final image has blocks with maximum value from image1, image2 or image3.

Is it possible to do such comparison and produce a new image.

image = cv2.resize(im,(200,200))
image1 = cv2.resize(im1,(200,200))

hs = round(h/10)
ws = round(w/10)
hs1 = round(hs1/10)
ws1 = round(ws1/10)
resized = cv2.resize(image, (ws,hs), interpolation = cv2.INTER_AREA)
resized1 = cv2.resize(image1, (ws1,hs1), interpolation = cv2.INTER_AREA)

The result is like as shown in the picture here

Images can be accessed here .

A hint to get you started... you don't need to tile your image up and create resized/cropped sub-images to do this. You can perfectly easily access your blocks in situ . Here is an example, with smaller blocks (so you can see them) to get you started.

import numpy as np

# Make synthetic ramp image
ramp = np.arange(6,dtype=np.uint8).reshape(-1,1) + (np.arange(8)*10).reshape(1,-1)

That looks like this:

array([[ 0, 10, 20, 30, 40, 50, 60, 70],
       [ 1, 11, 21, 31, 41, 51, 61, 71],
       [ 2, 12, 22, 32, 42, 52, 62, 72],
       [ 3, 13, 23, 33, 43, 53, 63, 73],
       [ 4, 14, 24, 34, 44, 54, 64, 74],
       [ 5, 15, 25, 35, 45, 55, 65, 75]])

Now let's look at the top-left 2 rows and 3 columns:

print(ramp[:2, :3]) 

That looks like this:

array([[ 0, 10, 20],
       [ 1, 11, 21]])

And let's get their average:

print(ramp[:2, :3].mean())
10.5

Now let's look at the bottom-right 2 rows and 3 columns:

print(ramp[-2:, -3:])

array([[54, 64, 74],
       [55, 65, 75]])

And get their mean:

print(ramp[-2:, -3:].mean())
64.5

A second hint... your answer will look like this:

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM