###前提・実現したいこと
opencvを用いて画像変換したいのですが、うまくいきません。
元画像をグレースケールに変換し、各画素の明度に対して自然対数をとりたいです。
言語はpythonです。
###発生している問題・エラーメッセージ
pythonファイルをcmdで実行すると、以下のようなエラーが出ます。
特に、
"mat data type = 23 is not supported"というところが分かりません。
###該当のソースコード
python
1 2import numpy as np 3import math,cv2 4 5image = cv2.imread("CX-B777.jpg") 6img = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) 7 8n = np.log(img) 9 10print(n) 11 12cv2.imshow("gray",n) 13key = cv2.waitKey(0) 14cv2.destroyAllWindows() 15
###試したこと
”mat data type"のエラーを検索しましたが、英語の例が数件あるだけでよくわかりませんでした。
各画素に対してlogではなく足し算掛け算なども試しましたが(n = img +30、n = img * 5/4 など)、濃淡が変わりうまくいくときと、新たなウィンドウが出てくるものの真っ白な場合がありました。
プログラミングを初めたばかりなので、根本的なところを間違えているのかもしれません。
###補足情報(言語/FW/ツール等のバージョンなど)
python 3.5 / opencv 3.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/27 07:46