概要
PythonでOpenCVを使って読み込んだ画像に対して、
ピクセル単位で色を操作する場合の効率的(高速)な実装方法を知りたいです。
詳細
PythonでOpenCVで読み込んだ画像についてピクセル単位で色操作をしたいのですが、
現在私のコードは以下のようになっています。
ただ、Pythonでforループを使うのはとても遅いという理解をしていて(実際に数千枚の画像ファイルに対してバッチ処理すると激しく遅いです)
forループを使わずに書く実装方法を知りたいです。
python
1import numpy as np 2import cv2 3 4def convert_example(colors): 5 # colors = (Blue, Green, Red) 6 # この処理はただの例です。 実際にはもっと複雑な処理を想定してください。 7 return (colors[2], colors[0], max(0, int(colors[1]) - int(colors[2]))) 8 9image = cv2.imread('hoge.jpg') 10work = np.empty_like(image) 11 12rows, cols, _ = img.shape 13 14# forループだと多数のファイルに対してバッチ処理をすると遅い!? 15for i in range(rows): 16 for j in range(cols): 17 work[i, j] = convert_example(image[i, j]) 18 19cv2.imwrite('output.bmp', work)
想定環境
- Anaconda & Jupyter Notebookで画像解析
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー