私は OpenCV を使用していくつかの画像を処理しています。最初に実行する必要がある手順の 1 つは、カラー画像の画像コントラストを上げることです。これまでに見つけた最速の方法は、元の C ベースの cv1 docsで提案されているように、このコード (np は numpy インポート) を使用して乗算および加算します。
if (self.array_alpha is None):
self.array_alpha = np.array([1.25])
self.array_beta = np.array([-100.0])
# add a beta value to every pixel
cv2.add(new_img, self.array_beta, new_img)
# multiply every pixel value by alpha
cv2.multiply(new_img, self.array_alpha, new_img)
Pythonでこれを行うより速い方法はありますか? 代わりに numpy のスカラー乗算を使用してみましたが、実際にはパフォーマンスが低下します。私も使用してみcv2.convertScaleAbs
ました (OpenCV のドキュメントでは の使用convertTo
が推奨されていましたが、cv2 にはこの関数へのインターフェイスがないようです) が、テストではやはりパフォーマンスが低下しました。