Python
1import numpy as np 2import cv2 3 4X=np.zeros([128,128],np.float32) 5 6v=np.ones([1,2],np.float32) 7 8w=np.ones([1,2],np.float32) 9 10#w=[i][j]とした場合、forでiとjそれぞれ-64から63まで1づつ変化# 11i=w[:,0] 12 13j=w[:,1] 14 15for i in range(-64,63): 16 for j in range(-64,63): 17#wとvの内積をX[i,j]に代入# 18 np.dot(w,v,out = X[i][j]) 19 20#Xの要素の最大値255,最小値0となるようにXを正規化# 21np.clip(X,0,255) 22 23#Xを表示# 24cv2.imshow(X) 25cv2.waitKey(0) 26
Xの画像を表示させたいのですがエラーが出てしまいます。
line 18, in <module>
np.dot(w,v,out = X[i][j])
File "<array_function internals>", line 6, in dot
TypeError: 'out' must be an array
内積と正規化の方法が間違っているのでしょうか。教えていただきたいです。
<変更後>
import numpy as np
import cv2
X=np.zeros([128,128],np.float32)
#要素がすべて1の2行行列v、wを作成#
v=np.ones([2,1],np.float32)
w=np.ones([2,1],np.float32)
#w=[i][j]とした場合、forでiとjそれぞれ-64から63まで1づつ変化#
i=w[:,0]
j=w[0,:]
for i in range(-64,63):
for j in range(-64,63):
#wとvの内積をX[i,j]に代入#
np.dot(w,v,out = X[i][j])
#Xの要素の最大値255,最小値0となるようにXを正規化#
np.clip(X,0,255)
#Xを表示#
cv2.imshow(X)
cv2.waitKey(0)
先ほどのエラーは解消されましたありがとうございます。
他に3つ質問がございます。
〇1個目
変更後のコードだと
line 19, in <module>
np.dot(w,v,out = X[i][j])
File "<array_function internals>", line 6, in dot
TypeError: 'out' must be an array
のようなエラーが出てきます。
どのように改善したらよいでしょうか
〇2個目
w=[i][j]としたときの
i=w[:,0]
j=w[0,:]
は正しいでしょうか。
〇3個目
このコードが正しく実行された場合どのような画像が表示されるでしょうか。
あなたの回答
tips
プレビュー