opencvを用いて画像をアニメ化しようとしたところエラーが出てしまい困っています。
コードの内容としては
・Cannyアルゴリズムで輪郭画像の作成
・入力画像の減色処理を行う
・入力画像から輪郭画像を引く を行いonsen.jpgという元画像をアニメ風に変えようとしたところ
gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY) error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
このようなエラーが出てしまいました。
全体のコードはこちらです
import cv2 import numpy as np def anime_filter(img, K=20): gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY) edge = cv2.blur(gray, (3, 3)) edge = cv2.Canny(edge, 50, 150, apertureSize=3) edge = cv2.cvtColor(edge, cv2.COLOR_GRAY2BGR) img = np.array(img/K, dtype=np.uint8) img = np.array(img*K, dtype=np.uint8) return cv2.subtract(img, edge) def main(): img = cv2.imread("C:/github/sample/python/opencv/sample_data/onsen.jpg") anime = anime_filter(img, 30) cv2.imwrite("C:/github/sample/python/opencv/anime_picture/animeonsen.jpg", anime) if __name__ == '__main__': main()
パスは実行する人の環境に合わせて適宜変えるものですが、C:/github/sample/python/opencv/sample_data/onsen.jpg という場所に画像ファイルが置かれていないのでしょう
やたらとこれ系のエラーの質問が多い気がする不思議.このエラーメッセージ
> !_src.empty() in function 'cv::cvtColor'
を,「なんとなく」読むだけでも原因が「想像」できると思うんだけど.
(「想像」した結果,○○については確かめたのだがどうのこうの…… といった話ならわかるのだが)
回答1件
あなたの回答
tips
プレビュー