前提・実現したいこと
opencvのcv2.calcHistの返り値をholoviewのhv.Curveで表示したいです。
自分なりに考えてみましたが、考え方がそもそも間違っているのかもしれません。
発生している問題・エラーメッセージ
DataError: Supplied data does not match specified dimensions, expected at least 2 columns. ArrayInterface expects tabular data, for more information on supported datatypes see http://holoviews.org/user_guide/Tabular_Datasets.html
該当のソースコード
python3
1im = np.array(Image.open(file_name)) 2im_hist = cv2.calcHist([im],[0],None,[256],[0,256]) 3hv.Curve(im_hist)
試したこと
python3
1im_hist
result
1array([[0.000000e+00], 2 [0.000000e+00], 3 [0.000000e+00], 4 [0.000000e+00], 5(中略) 6 [0.000000e+00], 7 [0.000000e+00], 8 [0.000000e+00], 9 [1.000000e+00]], dtype=float32)
arrayの中にarrayが入っていることが問題かと考えて、
python3
1im_hist_list = list(im_hist) 2im_hist_list
result
1[array([0.], dtype=float32), 2 array([0.], dtype=float32), 3 array([0.], dtype=float32), 4 array([0.], dtype=float32), 5(中略) 6 array([0.], dtype=float32), 7 array([0.], dtype=float32), 8 array([0.], dtype=float32), 9 array([1.], dtype=float32)]
としましたが、
一項目?ずつがarrayのままでダメでした。
なので、一項目?ずつlist化しようとしたのですが、
python3
1im_hist_list = [] 2 3for i in im_hist: 4 im_hist_list.append(list(i)) 5 6im_hist_list
result
1[[0.0], 2 [0.0], 3 [0.0], 4 [0.0], 5(中略) 6 [0.0], 7 [0.0], 8 [0.0], 9 [1.0]]
となり、各項目?に[]がついたlistになってしまい、これもダメでした。
[]を外せばうまくいくのか、わかりませんが、[]を外す手段もわかりません...
[]のついていない数字?をなんと呼ぶのかもわからないモグリであるため、質問いたしました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/24 01:28
2020/04/24 05:25
2020/04/24 06:05