-1
で自動ホワイトバランス:私はそれらを実装するためのpythonとOpenCVのを使用している https://pippin.gimp.org/image-processing/chapter-automaticadjustments.html私はによって提供さホワイトバランスアルゴリズムを実装しようとしているGrayworld仮定
。私はウェブサイトと同じ結果を出すことができません。私はつもりですどこ
import cv2 as cv
import numpy as np
def show(final):
print 'display'
cv.imshow("Temple", final)
cv.waitKey(0)
cv.destroyAllWindows()
def saveimg(final):
print 'saving'
cv.imwrite("result.jpg", final)
# Insert any filename with path
img = cv.imread("grayworld_assumption_0.png")
res = img
final = cv.cvtColor(res, cv.COLOR_BGR2LAB)
avg_a = -np.average(final[:,:,1])
avg_b = -np.average(final[:,:,2])
for x in range(final.shape[0]):
for y in range(final.shape[1]):
l,a,b = final[x][y]
shift_a = avg_a * (l/100.0) * 1.1
shift_b = avg_b * (l/100.0) * 1.1
final[x][y][1] = a + shift_a
final[x][y][2] = b + shift_b
final = cv.cvtColor(final, cv.COLOR_LAB2BGR)
final = np.hstack((res, final))
show(final)
saveimg(final)
私は結果
を取得しています:
はgrayworld仮定では、例えば、私は次のコードを使用します違う?
'cv.imread()'はデフォルトでBGRになりますか?私はそれがRGBを使用すると仮定していたが、今はドキュメントを見つけることができない。それが問題だろうか? ... NVMはドキュメントを見つけ、デフォルトでBGRを使用します。 – norok2
@norokこれはhttp://docs.opencv.org/3.0-beta/modules/imgcodecs/doc/reading_and_writing_images.htmlにあります。「カラー画像の場合、デコードされた画像はBGR順にチャンネルが保存されます" – Saptarshi