import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
top_left = cv2.imread ( 'top_left.jpg' )
top_left = cv2.cvtColor ( top_left, cv2.COLOR_BGR2RGB )
top_left = cv2.resize ( top_left, ( 200 , 200 ) )
top_right = cv2.imread ( 'top_right.jpg' )
top_right = cv2.cvtColor ( top_right, cv2.COLOR_BGR2RGB )
top_right = cv2.resize ( top_right, ( 200 , 200 ) )
bottom_left = cv2.imread ( 'bottom_left.jpg' )
bottom_left = cv2.cvtColor ( bottom_left, cv2.COLOR_BGR2RGB )
bottom_left = cv2.resize ( bottom_left, ( 200 , 200 ) )
bottom_right = cv2.imread ( 'bottom_right.jpg' )
bottom_right = cv2.cvtColor ( bottom_right, cv2.COLOR_BGR2RGB )
bottom_right = cv2.resize ( bottom_right, ( 200 , 200 ) )
center = cv2.imread ( 'center.jpeg' )
center = cv2.cvtColor ( center, cv2.COLOR_BGR2RGB )
center = cv2.resize ( center, ( 100 , 100 ) )
center = cv2.copyMakeBorder ( center, 10 , 10 , 10 , 10 , cv2.BORDER_CONSTANT )
image = np.zeros ( ( 430 , 430 , 3 ) , dtype= "int" )
image[ 10 :210 , 10 :210 ] = top_left
image[ 10 :210 , 220 :420 ] = top_right
image[ 220 :420 , 10 :210 ] = bottom_left
image[ 220 :420 , 220 :420 ] = bottom_right
image[ 155 :275 , 155 :275 ] = center
x = np.array ( image)
df = pd.DataFrame ( x.reshape ( -1 , 3 ) )
y = df.rename ( columns= { 0 :'r' , 1 :'g' , 2 :'b' } )
y.to_csv ( 'b.csv' , index= False )
aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBwYW5kYXMgYXMgcGQKaW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsdAoKdG9wX2xlZnQgPSBjdjIuaW1yZWFkKCd0b3BfbGVmdC5qcGcnKQp0b3BfbGVmdCA9IGN2Mi5jdnRDb2xvcih0b3BfbGVmdCxjdjIuQ09MT1JfQkdSMlJHQikKdG9wX2xlZnQgPSBjdjIucmVzaXplKHRvcF9sZWZ0LCgyMDAsMjAwKSkKCnRvcF9yaWdodCA9IGN2Mi5pbXJlYWQoJ3RvcF9yaWdodC5qcGcnKQp0b3BfcmlnaHQgPSBjdjIuY3Z0Q29sb3IodG9wX3JpZ2h0LGN2Mi5DT0xPUl9CR1IyUkdCKQp0b3BfcmlnaHQgPSBjdjIucmVzaXplKHRvcF9yaWdodCwoMjAwLDIwMCkpCgpib3R0b21fbGVmdCA9IGN2Mi5pbXJlYWQoJ2JvdHRvbV9sZWZ0LmpwZycpCmJvdHRvbV9sZWZ0ID0gY3YyLmN2dENvbG9yKGJvdHRvbV9sZWZ0LGN2Mi5DT0xPUl9CR1IyUkdCKQpib3R0b21fbGVmdCA9IGN2Mi5yZXNpemUoYm90dG9tX2xlZnQsKDIwMCwyMDApKQoKYm90dG9tX3JpZ2h0ID0gY3YyLmltcmVhZCgnYm90dG9tX3JpZ2h0LmpwZycpCmJvdHRvbV9yaWdodCA9IGN2Mi5jdnRDb2xvcihib3R0b21fcmlnaHQsY3YyLkNPTE9SX0JHUjJSR0IpCmJvdHRvbV9yaWdodCA9IGN2Mi5yZXNpemUoYm90dG9tX3JpZ2h0LCgyMDAsMjAwKSkKCmNlbnRlciA9IGN2Mi5pbXJlYWQoJ2NlbnRlci5qcGVnJykKY2VudGVyID0gY3YyLmN2dENvbG9yKGNlbnRlcixjdjIuQ09MT1JfQkdSMlJHQikKY2VudGVyID0gY3YyLnJlc2l6ZShjZW50ZXIsKDEwMCwxMDApKQpjZW50ZXIgPSBjdjIuY29weU1ha2VCb3JkZXIoY2VudGVyLDEwLDEwLDEwLDEwLGN2Mi5CT1JERVJfQ09OU1RBTlQpCgppbWFnZSA9IG5wLnplcm9zKCg0MzAsNDMwLDMpLGR0eXBlPSJpbnQiKQppbWFnZVsxMDoyMTAsMTA6MjEwXSA9IHRvcF9sZWZ0CmltYWdlWzEwOjIxMCwyMjA6NDIwXSA9IHRvcF9yaWdodAppbWFnZVsyMjA6NDIwLDEwOjIxMF0gPSBib3R0b21fbGVmdAppbWFnZVsyMjA6NDIwLDIyMDo0MjBdID0gYm90dG9tX3JpZ2h0CmltYWdlWzE1NToyNzUsMTU1OjI3NV0gPSBjZW50ZXIKCnggPSBucC5hcnJheShpbWFnZSkKZGYgPSBwZC5EYXRhRnJhbWUoeC5yZXNoYXBlKC0xLDMpKQp5ID0gZGYucmVuYW1lKGNvbHVtbnM9ezA6J3InLDE6J2cnLDI6J2InfSkKeS50b19jc3YoJ2IuY3N2JyxpbmRleD1GYWxzZSk=