Home > other >  Adding 2D Numpy Arrays
Adding 2D Numpy Arrays

Time:04-08

I am a beginner with Numpy. My code imports a movie file saved in h5 format. The movie is stored as a 3D array which I then slice into 2D arrays to get the frames.

I would like to add two 2D arrays (frames) together (element-wise). However, when I do this resulting 2D array is populated with values that I don't expect (i.e not element-wise addition)

Can any one spot where I have gone wrong? Thanks!

import numpy as np

import h5py




File='10min_frames.h5'



f = h5py.File(File, 'r')

movie=f['native']


print("size:  " str(np.size(movie,0)))

print("shape:  " str(np.shape(movie)))


image1=movie[0,:,:]

image2=movie[1,:,:]

print('image')

print(list(image1))

print((image1.shape))
            

print('image2')

print(list(image2))

print((image2.size))
            
            
sum=np.add(image1,image2)


print("sum")

print(list(sum))

OUTPUT:

This movie is:  28249
shape:  (28249, 59, 150)
image
[array([40996, 44947, 44528, 45520, 42444, 40239, 37299, 37922, 41863,
       43389, 43035, 40798, 40197, 40097, 40352, 40650, 40233, 41654,
       42220, 43753, 42091, 40906, 38673, 38771, 38388, 38990, 41166,
       42070, 41958, 39958, 39601, 41161, 43726, 44090, 39035, 35404,
       38582, 45259, 50001, 46800, 39752, 37158, 38236, 41226, 41878,
       40895, 40356, 41200, 42285, 41495, 39465, 38124, 38603, 39065,
       39780, 38574, 39443, 41222, 41407, 40383, 41703, 42801, 42601,
       39595, 36686, 35642, 36610, 38325, 41118, 43937, 44449, 42190,
       40593, 39250, 39030, 39277, 40069, 40543, 41769, 43321, 43059,
       39710, 35335, 32578, 34353, 39195, 44489, 46760, 42665, 38346,
       38479, 39813, 40894, 40297, 41360, 42163, 41051, 38561, 37780,
       38780, 40311, 40255, 39925, 39796, 37401, 34396, 32845, 34359,
       36888, 38671, 41189, 43333, 45228, 42434, 38733, 36500, 35707,
       35845, 35257, 33277, 34115, 37540, 43167, 48434, 49994, 48232,
       46272, 43379, 40961, 39128, 37116, 34149, 33042, 36372, 42161,
       46027, 41955, 37067, 36858, 40774, 42434, 39476, 34394, 31283,
       31081, 32577, 35003, 35508, 35131, 35252], dtype=uint16), array([40688, 43592, 43207, 43599, 40863, 39629, 36700, 37513, 41022,
       43491, 45184, 43355, 40617, 37454, 37685, 38776, 41507, 43432,
       43291, 42573, 41313, 40426, 38040, 37331, 37906, 39546, 41779,
       44033, 43933, 42690, 40940, 41141, 44434, 43773, 39572, 35114,
       35437, 40311, 44603, 43761, 40643, 38988, 41046, 43869, 44724,
       42999, 40947, 40475, 41321, 41873, 40070, 37118, 38319, 40265,
       42131, 42518, 43854, 43157, 42192, 40235, 40448, 40810, 40987,
       40398, 38169, 36615, 35103, 37426, 40883, 45383, 47339, 46428,
       43287, 39988, 38960, 38786, 38241, 38665, 39813, 42919, 44999,
       42959, 38747, 34962, 35025, 39792, 45052, 44832, 40905, 37153,
       37840, 39107, 39572, 38720, 39723, 41745, 41355, 38348, 37486,
       38987, 40668, 40811, 39060, 39247, 37576, 35418, 34901, 36676,
       39131, 40461, 42329, 45103, 46024, 42120, 37629, 34370, 34874,
       35504, 35402, 33498, 35199, 39390, 45642, 49950, 49484, 46823,
       45435, 43607, 41478, 37949, 34562, 31632, 31360, 33226, 37053,
       38819, 36974, 36130, 39188, 42803, 42996, 39258, 35225, 33054,
       33642, 35118, 36865, 37304, 35717, 35517], dtype=uint16), array([38862, 41219, 40963, 40307, 38270, 38103, 35724, 35783, 38249,
       41583, 44884, 43190, 40126, 36144, 35108, 37899, 41624, 44116,
       43289, 42309, 42192, 41370, 38873, 38347, 38330, 39847, 41673,
       43623, 45275, 44222, 42188, 42370, 44041, 43517, 40718, 35280,
       33581, 35143, 38496, 40420, 40326, 39954, 41369, 44012, 44755,
       43188, 40216, 38842, 39487, 39308, 36837, 35556, 36751, 41241,
       44574, 45793, 44878, 43640, 40782, 38306, 36713, 38150, 41272,
       42913, 41846, 38543, 36007, 36765, 39403, 43487, 45835, 44990,
       42529, 39475, 37196, 37159, 36557, 36979, 39202, 43213, 45801,
       45671, 41568, 37037, 35926, 38690, 42276, 42534, 38787, 36011,
       37384, 38552, 37721, 37246, 39536, 42510, 42782, 40259, 37891,
       38447, 39356, 39210, 37468, 38588, 38553, 38157, 37950, 39855,
       41267, 40988, 42265, 43728, 43043, 39761, 35334, 33308, 35302,
       36461, 36504, 34375, 34778, 39036, 43985, 47236, 46187, 43628,
       42981, 43467, 41501, 36340, 31515, 29345, 30012, 33067, 35523,
       36237, 35915, 36661, 39414, 41429, 40272, 37209, 35529, 36618,
       37720, 38912, 39279, 37692, 36407, 36625], dtype=uint16), array([38855, 40979, 39328, 37881, 36867, 38762, 36661, 35334, 36052,
       38866, 42282, 42706, 39580, 35219, 33351, 36108, 40144, 42417,
       41034, 39889, 40437, 41202, 40693, 39353, 39251, 39276, 39615,
       40662, 42265, 44355, 43863, 41968, 42681, 41695, 40864, 36755,
       33755, 33258, 36932, 40034, 41462, 40366, 38082, 37930, 38277,
       39091, 37615, 36281, 36535, 36147, 33621, 33103, 34662, 39397,
       44330, 44935, 43004, 40504, 38478, 35759, 35460, 38564, 42514,
       45904, 45499, 42261, 38196, 36634, 37873, 40166, 41227, 41216,
       39525, 37566, 36126, 36068, 36275, 37351, 38380, 41401, 44037,
       43824, 41078, 37082, 36400, 38112, 40544, 40912, 37754, 36124,
       37046, 38385, 38297, 38354, 40643, 44360, 44489, 41623, 38988,
       38761, 38485, 37943, 36734, 38600, 40509, 39951, 40187, 39865,
       40751, 40020, 39656, 39622, 38178, 35998, 33656, 34828, 37454,
       38769, 37710, 35489, 35070, 37222, 40683, 43025, 41315, 40397,
       42068, 43720, 41447, 36238, 30709, 29467, 32092, 35683, 38055,
       38137, 37590, 38533, 40525, 40033, 37515, 35187, 36538, 39165,
       41122, 41509, 40734, 37856, 36315, 36945], dtype=uint16), array([39741, 41465, 39989, 38294, 38663, 40822, 39720, 38097, 37300,
       38082, 41022, 41296, 38740, 34804, 33515, 35180, 38714, 39330,
       37297, 37418, 39516, 40631, 41131, 40187, 39880, 39140, 38124,
       37899, 40112, 41880, 43281, 40459, 40398, 39572, 39126, 37877,
       35904, 35549, 38907, 42047, 43504, 38154, 32761, 30027, 31267,
       34458, 35801, 35860, 34933, 33749, 33022, 32519, 34319, 37466,
       41359, 41330, 39140, 37401, 37290, 36439, 36454, 38191, 42166,
       46078, 45754, 43889, 40553, 37506, 36440, 37203, 37797, 37688,
       37157, 36193, 36590, 37377, 37997, 38572, 38567, 39162, 40174,
       38847, 37476, 35938, 36478, 37419, 40736, 40721, 39342, 36531,
       35934, 37810, 38747, 38915, 39978, 42429, 42463, 40632, 39153,
       38725, 38110, 37481, 37542, 40086, 43011, 42769, 40277, 37815,
       37166, 36597, 36186, 35722, 34455, 34105, 34969, 36929, 39409,
       39860, 38155, 35604, 35467, 36380, 38027, 38067, 36650, 36976,
       39404, 43040, 42102, 37104, 32706, 32596, 36351, 40491, 42425,
       42187, 41513, 41247, 41053, 38880, 36088, 34892, 38112, 40666,
       41839, 41082, 39330, 36459, 34491, 35268], dtype=uint16), array([41282, 42820, 41653, 41099, 42107, 43979, 43282, 40406, 38634,
       38642, 40556, 40926, 40144, 36496, 35876, 37561, 39871, 39450,
       37405, 36632, 38603, 39894, 40286, 40254, 40659, 40113, 38726,
       37635, 38729, 40367, 41290, 38671, 37068, 36534, 38298, 39246,
       38557, 38067, 40589, 43829, 45233, 38383, 30377, 26517, 28819,
       33337, 37845, 39471, 37981, 36867, 35180, 34357, 35583, 36558,
       36912, 36408, 36183, 36923, 38535, 38878, 38518, 38267, 40240,
       42296, 42597, 42539, 40493, 38492, 36563, 36470, 36897, 37797,
       37539, 37309, 38219, 38682, 39902, 40292, 39380, 38407, 36816,
       36639, 36638, 36636, 37973, 38327, 40568, 40365, 38818, 35814,
       34800, 35964, 38480, 38726, 38949, 37814, 37232, 37279, 37616,
       37687, 37554, 37193, 37819, 41993, 44795, 44198, 39952, 35150,
       33577, 33641, 34220, 34542, 34047, 34874, 36999, 39268, 41844,
       39787, 38179, 36526, 35809, 37625, 37797, 36875, 34821, 35118,
       37445, 41426, 42051, 39324, 36389, 37193, 40849, 44841, 45786,
       44288, 41886, 41688, 41132, 38660, 35652, 35911, 39202, 40891,
       40354, 38615, 36796, 35388, 33230, 33062], dtype=uint16), array([42248, 43538, 42082, 42171, 42770, 45088, 44312, 41819, 40809,
       39945, 40915, 40860, 41326, 39259, 40048, 41957, 44435, 43024,
       40991, 39109, 40634, 40554, 39609, 40030, 41665, 42613, 41121,
       38763, 38341, 40036, 39881, 36743, 34787, 34929, 38599, 40716,
       39586, 38546, 40539, 44125, 44594, 38201, 32034, 29467, 32432,
       39694, 44426, 45563, 43800, 41639, 40105, 38926, 37575, 37013,
       36331, 35550, 36405, 38560, 41502, 40918, 39317, 37409, 36575,
       37623, 39171, 40292, 40389, 38434, 36667, 37765, 39402, 40498,
       40461, 39916, 39560, 40807, 40710, 40632, 40097, 38734, 36811,
       37275, 37697, 38488, 37588, 37168, 38141, 39221, 38176, 34866,
       33777, 35242, 38181, 39349, 38299, 35289, 34267, 34452, 35818,
       36640, 36481, 36321, 37966, 41810, 45092, 43931, 39272, 35478,
       33236, 34043, 35193, 35409, 35610, 37192, 38773, 41055, 41561,
       38919, 36604, 36128, 37660, 39280, 39550, 39318, 37070, 36576,
       37678, 40358, 41344, 40731, 39636, 40862, 43099, 45089, 43824,
       41261, 39783, 40024, 39627, 37849, 35625, 37081, 39473, 41001,
       39079, 36733, 34836, 35326, 34699, 34118], dtype=uint16), array([43628, 43430, 42166, 42250, 42007, 44364, 44156, 43136, 42485,
       40346, 41190, 40668, 42475, 42515, 43587, 45287, 47030, 45122,
       43660, 42881, 43547, 41192, 39645, 39233, 41327, 42864, 42692,
       40368, 39186, 39294, 38277, 35957, 34089, 34888, 40246, 41911,
       42347, 39791, 39008, 41209, 43514, 40211, 37488, 36913, 40912,
       48264, 50961, 51363, 50126, 47725, 45604, 41317, 38733, 37480,
       37198, 36916, 39
(59, 150)
image2
[array([41049, 44973, 44539, 45558, 42428, 40256, 37314, 37964, 41930,
       43452, 43101, 40826, 40204, 40098, 40360, 40656, 40233, 41658,
       42226, 43787, 42125, 40906, 38672, 38753, 38415, 39069, 41186,
       42097, 41968, 39976, 39592, 41180, 43772, 44135, 39024, 35448,
       38620, 45236, 50044, 46805, 39771, 37192, 38253, 41238, 41869,
       40948, 40377, 41226, 42241, 41532, 39436, 38076, 38577, 39082,
       39786, 38573, 39430, 41247, 41414, 40354, 41665, 42815, 42583,
       39576, 36662, 35643, 36595, 38301, 41119, 43966, 44464, 42142,
       40569, 39225, 39059, 39363, 40194, 40589, 41750, 43255, 43007,
       39673, 35323, 32583, 34324, 39180, 44506, 46755, 42655, 38369,
       38452, 39831, 40899, 40276, 41305, 42134, 40988, 38524, 37787,
       38784, 40328, 40208, 39936, 39797, 37385, 34392, 32840, 34364,
       36885, 38661, 41165, 43271, 45190, 42467, 38835, 36596, 35784,
       35876, 35258, 33279, 34114, 37521, 43193, 48448, 50006, 48193,
       46187, 43287, 40933, 39138, 37133, 34114, 33032, 36351, 42126,
       46013, 41903, 37066, 36814, 40770, 42446, 39460, 34401, 31275,
       31087, 32613, 34961, 35523, 35153, 35272], dtype=uint16), array([40703, 43583, 43219, 43604, 40898, 39618, 36723, 37569, 41056,
       43498, 45249, 43381, 40631, 37503, 37760, 38792, 41489, 43443,
       43304, 42558, 41358, 40483, 38068, 37340, 37917, 39616, 41800,
       44072, 43949, 42696, 40904, 41152, 44427, 43785, 39574, 35143,
       35448, 40333, 44602, 43767, 40632, 38998, 41071, 43873, 44722,
       43027, 40935, 40480, 41331, 41891, 40073, 37129, 38359, 40275,
       42155, 42531, 43844, 43133, 42179, 40232, 40480, 40841, 40980,
       40409, 38222, 36622, 35097, 37415, 40855, 45390, 47374, 46405,
       43273, 39946, 38988, 38863, 38269, 38715, 39796, 42846, 44998,
       42969, 38735, 34971, 35053, 39770, 45073, 44856, 40913, 37175,
       37834, 39097, 39617, 38729, 39681, 41738, 41358, 38363, 37501,
       39016, 40665, 40822, 39039, 39227, 37533, 35423, 34908, 36713,
       39145, 40455, 42330, 45089, 46021, 42133, 37694, 34496, 34929,
       35504, 35388, 33508, 35189, 39397, 45651, 49987, 49500, 46813,
       45391, 43526, 41443, 37934, 34594, 31614, 31374, 33206, 37049,
       38844, 36961, 36171, 39163, 42768, 42998, 39210, 35222, 33067,
       33666, 35146, 36849, 37318, 35744, 35546], dtype=uint16), array([38888, 41251, 40987, 40317, 38246, 38095, 35741, 35757, 38273,
       41628, 44923, 43181, 40145, 36158, 35188, 37929, 41660, 44084,
       43301, 42336, 42264, 41388, 38910, 38353, 38337, 39872, 41721,
       43644, 45290, 44202, 42174, 42372, 44008, 43550, 40715, 35266,
       33596, 35175, 38462, 40438, 40357, 39949, 41383, 44020, 44738,
       43190, 40166, 38787, 39452, 39268, 36883, 35566, 36716, 41236,
       44556, 45856, 44896, 43637, 40763, 38313, 36718, 38194, 41276,
       42955, 41878, 38553, 36015, 36747, 39395, 43441, 45842, 44954,
       42522, 39477, 37235, 37190, 36620, 36971, 39186, 43233, 45821,
       45688, 41589, 37031, 35932, 38697, 42301, 42567, 38785, 36030,
       37401, 38595, 37726, 37293, 39534, 42510, 42795, 40298, 37900,
       38454, 39343, 39188, 37450, 38592, 38535, 38148, 37991, 39841,
       41250, 40969, 42256, 43712, 43003, 39741, 35353, 33338, 35273,
       36373, 36449, 34354, 34762, 39042, 43990, 47216, 46220, 43626,
       42948, 43433, 41487, 36339, 31537, 29348, 29988, 32998, 35493,
       36252, 35917, 36691, 39442, 41426, 40209, 37187, 35497, 36655,
       37697, 38925, 39260, 37692, 36403, 36599], dtype=uint16), array([38925, 41068, 39423, 37915, 36838, 38764, 36632, 35323, 36058,
       38897, 42271, 42702, 39580, 35251, 33368, 36121, 40124, 42382,
       41010, 39871, 40481, 41231, 40715, 39336, 39211, 39285, 39582,
       40664, 42256, 44348, 43841, 41959, 42696, 41667, 40895, 36743,
       33744, 33276, 36959, 40038, 41492, 40405, 38122, 37951, 38242,
       39009, 37518, 36224, 36495, 36076, 33654, 33133, 34697, 39403,
       44335, 44982, 43018, 40469, 38454, 35752, 35495, 38606, 42563,
       45955, 45473, 42238, 38217, 36636, 37887, 40187, 41195, 41224,
       39522, 37541, 36150, 36075, 36339, 37351, 38334, 41397, 44053,
       43857, 41108, 37099, 36386, 38129, 40546, 40929, 37766, 36136,
       37049, 38414, 38333, 38334, 40572, 44342, 44501, 41626, 38993,
       38798, 38474, 37963, 36740, 38618, 40528, 39950, 40193, 39849,
       40702, 39998, 39653, 39598, 38155, 35958, 33591, 34795, 37373,
       38658, 37646, 35473, 35103, 37241, 40669, 42968, 41317, 40432,
       42116, 43756, 41460, 36244, 30771, 29448, 32066, 35676, 38051,
       38182, 37562, 38535, 40540, 40034, 37508, 35127, 36490, 39150,
       41102, 41514, 40748, 37837, 36321, 36940], dtype=uint16), array([39756, 41540, 39998, 38287, 38674, 40796, 39689, 38123, 37335,
       38071, 41031, 41292, 38697, 34812, 33521, 35207, 38727, 39291,
       37275, 37398, 39525, 40640, 41117, 40141, 39854, 39050, 38097,
       37893, 40072, 41860, 43249, 40465, 40409, 39549, 39136, 37890,
       35932, 35551, 38936, 42072, 43489, 38180, 32763, 30026, 31226,
       34438, 35828, 35898, 34953, 33716, 33002, 32517, 34331, 37465,
       41372, 41350, 39133, 37384, 37319, 36471, 36518, 38214, 42224,
       46103, 45785, 43871, 40577, 37517, 36450, 37220, 37745, 37684,
       37141, 36171, 36556, 37401, 38013, 38561, 38542, 39136, 40152,
       38848, 37508, 35946, 36490, 37452, 40744, 40726, 39312, 36554,
       35962, 37835, 38763, 38906, 39968, 42399, 42463, 40638, 39126,
       38705, 38129, 37495, 37523, 40100, 43029, 42784, 40294, 37814,
       37184, 36616, 36216, 35761, 34483, 34064, 34934, 36920, 39401,
       39829, 38135, 35673, 35508, 36415, 37995, 38057, 36598, 36953,
       39403, 43036, 42091, 37124, 32737, 32604, 36319, 40483, 42423,
       42218, 41528, 41249, 41092, 38853, 36056, 34850, 38120, 40623,
       41828, 41087, 39364, 36495, 34492, 35211], dtype=uint16), array([41283, 42804, 41642, 41080, 42100, 43969, 43273, 40446, 38643,
       38597, 40538, 40877, 40128, 36525, 35883, 37570, 39898, 39420,
       37387, 36636, 38638, 39914, 40232, 40206, 40627, 40081, 38675,
       37539, 38691, 40355, 41304, 38658, 37087, 36533, 38271, 39262,
       38541, 38068, 40592, 43862, 45210, 38422, 30379, 26500, 28736,
       33312, 37972, 39760, 38177, 36871, 35165, 34324, 35598, 36558,
       36916, 36448, 36228, 36948, 38521, 38895, 38470, 38294, 40296,
       42354, 42580, 42493, 40475, 38497, 36609, 36464, 36917, 37790,
       37557, 37309, 38170, 38678, 39891, 40281, 39337, 38397, 36770,
       36661, 36671, 36649, 37955, 38320, 40588, 40374, 38771, 35838,
       34785, 36032, 38518, 38735, 38935, 37799, 37208, 37252, 37602,
       37713, 37553, 37198, 37835, 41975, 44807, 44205, 39966, 35144,
       33541, 33656, 34253, 34599, 34051, 34894, 37011, 39320, 41814,
       39798, 38199, 36561, 35846, 37627, 37784, 36889, 34830, 35093,
       37424, 41434, 42032, 39332, 36424, 37206, 40835, 44850, 45821,
       44315, 41922, 41709, 41131, 38652, 35651, 35884, 39193, 40895,
       40368, 38646, 36790, 35400, 33240, 33036], dtype=uint16), array([42204, 43511, 42066, 42171, 42784, 45052, 44328, 41846, 40795,
       39930, 40922, 40833, 41296, 39291, 40106, 41991, 44429, 42970,
       40981, 39139, 40655, 40525, 39587, 40009, 41721, 42688, 41152,
       38732, 38299, 40023, 39883, 36745, 34785, 34932, 38602, 40677,
       39619, 38530, 40542, 44122, 44582, 38206, 32063, 29447, 32382,
       39719, 44599, 45916, 44064, 41698, 40091, 38871, 37587, 37047,
       36366, 35579, 36437, 38586, 41542, 40903, 39336, 37420, 36581,
       37608, 39127, 40264, 40400, 38422, 36701, 37761, 39409, 40517,
       40433, 39967, 39567, 40818, 40683, 40632, 40121, 38709, 36807,
       37299, 37711, 38502, 37560, 37158, 38115, 39259, 38165, 34856,
       33768, 35246, 38152, 39352, 38278, 35329, 34289, 34520, 35806,
       36668, 36444, 36303, 37956, 41778, 45107, 43936, 39244, 35439,
       33225, 34097, 35256, 35422, 35612, 37201, 38764, 41066, 41596,
       38969, 36600, 36172, 37693, 39275, 39564, 39342, 37086, 36595,
       37680, 40339, 41313, 40725, 39645, 40851, 43056, 45116, 43805,
       41282, 39750, 40020, 39630, 37799, 35623, 37071, 39454, 40996,
       39051, 36729, 34809, 35325, 34699, 34140], dtype=uint16), array([43607, 43398, 42130, 42276, 42031, 44379, 44123, 43177, 42519,
       40336, 41176, 40676, 42518, 42542, 43600, 45313, 47070, 45111,
       43675, 42867, 43567, 41219, 39632, 39294, 41515, 43071, 42792,
       40407, 39105, 39243, 38263, 36000, 34078, 34911, 40260, 41905,
       42344, 39777, 39011, 41228, 43503, 40236, 37507, 36912, 40863,
       48263, 51067, 51572, 50280, 47718, 45571, 41296, 38743, 37516,
       37263, 36926, 39
8850
sum
[array([16509, 24384, 23531, 25542, 19336, 14959,  9077, 10350, 18257,
       21305, 20600, 16088, 14865, 14659, 15176, 15770, 14930, 17776,
       18910, 22004, 18680, 16276, 11809, 11988, 11267, 12523, 16816,
       18631, 18390, 14398, 13657, 16805, 21962, 22689, 12523,  5316,
       11666, 24959, 34509, 28069, 13987,  8814, 10953, 16928, 18211,
       16307, 15197, 16890, 18990, 17491, 13365, 10664, 11644, 12611,
       14030, 11611, 13337, 16933, 17285, 15201, 17832, 20080, 19648,
       13635,  7812,  5749,  7669, 11090, 16701, 22367, 23377, 18796,
       15626, 12939, 12553, 13104, 14727, 15596, 17983, 21040, 20530,
       13847,  5122, 65161,  3141, 12839, 23459, 27979, 19784, 11179,
       11395, 14108, 16257, 15037, 17129, 18761, 16503, 11549, 10031,
       12028, 15103, 14927, 14325, 14057,  9250,  3252,   149,  3187,
        8237, 11796, 16818, 21068, 24882, 19365, 12032,  7560,  5955,
        6185,  4979,  1020,  2693,  9525, 20824, 31346, 34464, 30889,
       26923, 21130, 16358, 12730,  8713,  2727,   538,  7187, 18751,
       26504, 18322,  8597,  8136, 16008, 19344, 13400,  3259, 62558,
       62168, 65190,  4428,  5495,  4748,  4988], dtype=uint16), array([15855, 21639, 20890, 21667, 16225, 13711,  7887,  9546, 16542,
       21453, 24897, 21200, 15712,  9421,  9909, 12032, 17460, 21339,
       21059, 19595, 17135, 15373, 10572,  9135, 10287, 13626, 18043,
       22569, 22346, 19850, 16308, 16757, 23325, 22022, 13610,  4721,
        5349, 15108, 23669, 21992, 15739, 12450, 16581, 22206, 23910,
       20490, 16346, 15419, 17116, 18228, 14607,  8711, 11142, 15004,
       18750, 19513, 22162, 20754, 18835, 14931, 15392, 16115, 16431,
       15271, 10855,  7701,  4664,  9305, 16202, 25237, 29177, 27297,
       21024, 14398, 12412, 12113, 10974, 11844, 14073, 20229, 24461,
       20392, 11946,  4397,  4542, 14026, 24589, 24152, 16282,  8792,
       10138, 12668, 13653, 11913, 13868, 17947, 17177, 11175,  9451,
       12467, 15797, 16097, 12563, 12938,  9573,  5305,  4273,  7853,
       12740, 15380, 19123, 24656, 26509, 18717,  9787,  3330,  4267,
        5472,  5254,  1470,  4852, 13251, 25757, 34401, 33448, 28100,
       25290, 21597, 17385, 10347,  3620, 63246, 62734,   896,  8566,
       12127,  8399,  6765, 12815, 20035, 20458, 12932,  4911,   585,
        1772,  4728,  8178,  9086,  5925,  5527], dtype=uint16), array([12214, 16934, 16414, 15088, 10980, 10662,  5929,  6004, 10986,
       17675, 24271, 20835, 14735,  6766,  4760, 10292, 17748, 22664,
       21054, 19109, 18920, 17222, 12247, 11164, 11131, 14183, 17858,
       21731, 25029, 22888, 18826, 19206, 22513, 21531, 15897,  5010,
        1641,  4782, 11422, 15322, 15147, 14367, 17216, 22496, 23957,
       20842, 14846, 12093, 13403, 13040,  8184,  5586,  7931, 16941,
       23594, 26113, 24238, 21741, 16009, 11083,  7895, 10808, 17012,
       20332, 18188, 11560,  6486,  7976, 13262, 21392, 26141, 24408,
       19515, 13416,  8895,  8813,  7641,  8414, 12852, 20910, 26086,
       25823, 17621,  8532,  6322, 11851, 19041, 19565, 12036,  6505,
        9249, 11611,  9911,  9003, 13534, 19484, 20041, 15021, 10255,
       11365, 13163, 12862,  9382, 11644, 11552, 10769, 10405, 14160,
       16981, 16421, 18985, 21904, 20510, 13966,  5151,  1110,  5039,
        7298,  7417,  3193,  4004, 12542, 22439, 28916, 26871, 21718,
       20393, 21364, 17452,  7143, 63052, 58693, 60000,   529,  5480,
        6953,  6296,  7816, 13320, 17319, 14945,  8860,  5490,  7737,
        9881, 12301, 13003,  9848,  7274,  7688], dtype=uint16), array([12244, 16511, 13215, 10260,  8169, 11990,  7757,  5121,  6574,
       12227, 19017, 19872, 13624,  4934,  1183,  6693, 14732, 19263,
       16508, 14224, 15382, 16897, 15872, 13153, 12926, 13025, 13661,
       15790, 18985, 23167, 22168, 18391, 19841, 17826, 16223,  7962,
        1963,   998,  8355, 14536, 17418, 15235, 10668, 10345, 10983,
       12564,  9597,  6969,  7494,  6687,  1739,   700,  3823, 13264,
       23129, 24381, 20486, 15437, 11396,  5975,  5419, 11634, 19541,
       26323, 25436, 18963, 10877,  7734, 10224, 14817, 16886, 16904,
       13511,  9571,  6740,  6607,  7078,  9166, 11178, 17262, 22554,
       22145, 16650,  8645,  7250, 10705, 15554, 16305,  9984,  6724,
        8559, 11263, 11094, 11152, 15679, 23166, 23454, 17713, 12445,
       12023, 11423, 10370,  7938, 11682, 15501, 14365, 14844, 14178,
       15917, 14482, 13773, 13684, 10797,  6420,  1711,  4087,  9291,
       11891,  9820,  5426,  4637,  8927, 15816, 20457, 17096, 15293,
       18648, 21940, 17371,  6946, 61480, 58915, 64158,  5823, 10570,
       10783,  9616, 11532, 15529, 14531,  9487,  4778,  7492, 12779,
       16688, 17487, 15946, 10157,  7100,  8349], dtype=uint16), array([13961, 17469, 14451, 11045, 11801, 16082, 13873, 10684,  9099,
       10617, 16517, 17052, 11901,  4080,  1500,  4851, 11905, 13085,
        9036,  9280, 13505, 15735, 16712, 14792, 14198, 12654, 10685,
       10256, 14648, 18204, 20994, 15388, 15271, 13585, 12726, 10231,
        6300,  5564, 12307, 18583, 21457, 10798, 65524, 60053, 62493,
        3360,  6093,  6222,  4350,  1929,   488, 65036,  3114,  9395,
       17195, 17144, 12737,  9249,  9073,  7374,  7436, 10869, 18854,
       26645, 26003, 22224, 15594,  9487,  7354,  8887, 10006,  9836,
        8762,  6828,  7610,  9242, 10474, 11597, 11573, 12762, 14790,
       12159,  9448,  6348,  7432,  9335, 15944, 15911, 13118,  7549,
        6360, 10109, 11974, 12285, 14410, 19292, 19390, 15734, 12743,
       11894, 10703,  9440,  9529, 14650, 20504, 20017, 15035, 10093,
        8814,  7677,  6866,  5947,  3402,  2633,  4367,  8313, 13274,
       14153, 10754,  5741,  5439,  7259, 10486, 10588,  7712,  8393,
       13271, 20540, 18657,  8692, 65443, 65200,  7134, 15438, 19312,
       18869, 17505, 16960, 16609, 12197,  6608,  4206, 10696, 15753,
       18131, 16633, 13158,  7418,  3447,  4943], dtype=uint16), array([17029, 20088, 17759, 16643, 18671, 22412, 21019, 15316, 11741,
       11703, 15558, 16267, 14736,  7485,  6223,  9595, 14233, 13334,
        9256,  7732, 11705, 14272, 14982, 14924, 15750, 14658, 11865,
        9638, 11884, 15186, 17058, 11793,  8619,  7531, 11033, 12972,
       11562, 10599, 15645, 22155, 24907, 11269, 60756, 53017, 57555,
        1113, 10281, 13695, 10622,  8202,  4809,  3145,  5645,  7580,
        8292,  7320,  6875,  8335, 11520, 12237, 11452, 11025, 15000,
       19114, 19641, 19496, 15432, 11453,  7636,  7398,  8278, 10051,
        9560,  9082, 10853, 11824, 14257, 15037, 13181, 11268,  8050,
        7764,  7773,  7749, 10392, 11111, 15620, 15203, 12053,  6116,
        4049,  6460, 11462, 11925, 12348, 10077,  8904,  8995,  9682,
        9864,  9571,  8855, 10118, 18432, 24066, 22867, 14382,  4758,
        1582,  1761,  2937,  3605,  2562,  4232,  8474, 13052, 18122,
       14049, 10842,  7551,  6119,  9716, 10045,  8228,  4115,  4675,
        9333, 17324, 18547, 13120,  7277,  8863, 16148, 24155, 26071,
       23067, 18272, 17861, 16727, 11776,  5767,  6259, 12859, 16250,
       15186, 11725,  8050,  5252,   934,   562], dtype=uint16), array([18916, 21513, 18612, 18806, 20018, 24604, 23104, 18129, 16068,
       14339, 16301, 16157, 17086, 13014, 14618, 18412, 23328, 20458,
       16436, 12712, 15753, 15543, 13660, 14503, 17850, 19765, 16737,
       11959, 11104, 14523, 14228,  7952,  4036,  4325, 11665, 15857,
       13669, 11540, 15545, 22711, 23640, 10871, 64097, 58914, 64814,
       13877, 23489, 25943, 22328, 17801, 14660, 12261,  9626,  8524,
        7161,  5593,  7306, 11610, 17508, 16285, 13117,  9293,  7620,
        9695, 12762, 15020, 15253, 11320,  7832,  9990, 13275, 15479,
       15358, 14347, 13591, 16089, 15857, 15728, 14682, 11907,  8082,
        9038,  9872, 11454,  9612,  8790, 10720, 12944, 10805,  4186,
        2009,  4952, 10797, 13165, 11041,  5082,  3020,  3436,  6088,
        7772,  7389,  7088, 10386, 18052, 24663, 22331, 12980,  5381,
         925,  2604,  4913,  5295,  5686,  8857, 12001, 16585, 17621,
       12352,  7668,  6764,  9817, 13019, 13578, 13124,  8620,  7635,
        9822, 15161, 17121, 15920, 13745, 16177, 20619, 24669, 22093,
       17007, 13997, 14508, 13721, 10112,  5712,  8616, 13391, 16461,
       12594,  7926,  4109,  5115,  3862,  2722], dtype=uint16), array([21699, 21292, 18760, 18990, 18502, 23207, 22743, 20777, 19468,
       15146, 16830, 15808, 19457, 19521, 21651, 25064, 28564, 24697,
       21799, 20212, 21578, 16875, 13741, 12991, 17306, 20399, 19948,
       15239, 12755, 13001, 11004,  6421,  2631,  4263, 14970, 18280,
       19155, 14032, 12483, 16901, 21481, 14911,  9459,  8289, 16239,
       30991, 36492, 37399, 34870, 29907, 25639, 17077, 11940,  9460,
        8925,  8306, 12

CodePudding user response:

The issue is that the type of the elements in your arrays are uint16, meaning that the maximum value for a given cell is 65535. All your results of the additions will be over this threshold, hence they will be reduced to result - 65535.

In your add function, force the dtype to be:

sum=np.add(image1,image2,dtype='uint32')

CodePudding user response:

Your problem is caused by a integer overflow due to the size of the considered values and their data type. The used data type np.uint16 is able to represent values between 0 and 65535.

When we consider the first element of both images and their sum we obtain:

image1[0][0] = 40996
image2[0][0] = 41049
image1[0][0]   image2[0][0] = 16509

However, as the correct value we would expect: 82045 = 65536 16509

To fix your problem you could use numpy.ndarray.astype

Furthermore your image objects are not 2D arrays from the type np.array, but rather a list of multiple numpy arrays. To fix this you should use np.vstack(image1) numpy.vstack. This will probably ease further processing and automatically changes the dtype to np.int64 by default.

  • Related