私は一連の画像を持っています。私はこれらの画像の明るさを平均化する必要があります。python + OpenCVでイメージの明るさを速く変更する方法は?
まず例(非常に遅い):
img = cv2.imread('test.jpg') #load rgb image
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #convert it to hsv
for x in range(0, len(hsv)):
for y in range(0, len(hsv[0])):
hsv[x, y][2] += value
img = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imwrite("image_processed.jpg", img)
第二の例(迅速)
hsv += value
この例は非常に速いが、それは(私は変更する必要があるすべての値のHSVを変更しますV(輝度))
は動作しません。明るさを上げた後、出力として奇妙な画像を与えます。 –
@ GauravRajオーバーフローする可能性があります。その場合は、['numpy.clip'](https://docs.scipy.org/doc/numpy/reference/generated/numpy.clip.html)のクリッピングを使用する必要があります。また、これがHSV側で動作していることを通知します。したがって、これらのRGBからHSVおよびバック変換を行う必要があります。 – Divakar
はい、私はそれをすべて行いました。 BGRをHSVに、そしてhsv [:、:、2] + = 50、次にnp.clip、最後にHSVをBGRに変更します。まだ運がありません。 –