pythonでfits形式の画像とpng形式の画像の同座標のピクセル値を掛け合わせてリストに入れたいのですが
以下のようなエラーメッセージが表示されました。どのように対処すればよいでしょうか。
----エラーメッセージ--------------------------------------------------------------------------------
img3[i][j] = img1_arr[i][j] * img2_arr[i][j]
TypeError: 'PrimaryHDU' object is not subscriptable
画像のサイズはすでに合わせており、問題ないと思っていたのですが掛け合わせるところに問題があるのでしょうか。
ご教授よろしくお願いします。
python
1import cv2 2import glob 3import numpy as np 4import pyfits 5 6 7cut_name_num=33 #eventxxxx/の部分が後の処理で邪魔なため文字列からカットするためのもの 8img3 = [] 9 10def multi_pic(filename1,filename2): 11 print(filename1[cut_name_num:]) 12 img1 = pyfits.open(filename1) 13 img2 = cv2.imread(filename2,cv2.IMREAD_GRAYSCALE) 14 img1_arr=img1[0].data 15 #print(img1[0].header) #画像情報 16 img1.close() 17 print(type(img1_arr[0][0])) 18 img2_arr = np.asarray(img2).astype(np.float32) #型を合わせる 19 #numpyで扱える配列をつくる 20 print(type(img2_arr[0][0])) 21 print(len(img1_arr),len(img1_arr)) 22 for i in range (len(img1_arr)): 23 for j in range(len(img1_arr)): 24 img3[i][j] = img1_arr[i][j] * img2_arr[i][j] #### ここがエラー該当箇所 25 print(img3) 26 27 28 29 30 31if __name__ == "__main__": 32 event_s = 0 #event0000から数えてevent_s+1枚目から 33 event_e = 1 #event_e枚目まで読み込む 34 path1= XXXXX #fits 35 path2= YYYYY #png 36 files1 = glob.glob(path1)[event_s:event_e] 37 files2 = glob.glob(path2)[event_s:event_e] 38 #files1 = glob.glob(path1) #一括で行う場合はこれを使う 39 #files2 = glob.glob(path2) #一括で行う場合はこれを使う 40 for name1,name2 in zip(files1,files2): 41 multi_pic(name1,name2) 42