1
我想調整Python的OpenCV中的對比度,就像在Gimp中一樣。我想這樣做: OpenCV像Gimp中的亮度和對比度
在瘸子它很簡單。我只是使用Colors->Brightness & Contrast
,並設置對比127
。 但我不知道如何在Python中做到這一點,我找不到解決這個問題的辦法。
我想調整Python的OpenCV中的對比度,就像在Gimp中一樣。我想這樣做: OpenCV像Gimp中的亮度和對比度
在瘸子它很簡單。我只是使用Colors->Brightness & Contrast
,並設置對比127
。 但我不知道如何在Python中做到這一點,我找不到解決這個問題的辦法。
檢查here。公式是:
new_value = (old_value - 0.5) × contrast + 0.5 + brightness
在Python中,你可以很容易地將這些應用爲矩陣運算。請注意,這裏的像素值在[0,1]中,所以當範圍在[0,255]時,0.5等於127。
在相同的鏈接也被報告的代碼,以像素爲單位的運算(只複製的完整性):
function transform(value, brightness, contrast)
return (value-0.5)*contrast+0.5+brightness
end
function transform_rgb(r,g,b, brightness, contrast)
return transform(r, brightness, contrast), transform(g, brightness, contrast), transform(b, brightness, contrast)
end
function bcontrast_get_rgb(x,y,brightness, contrast)
r,g,b=get_rgb(x,y)
return transform_rgb(r,g,b, brightness, contrast)
end
function bcontrast(brightness, contrast)
for y=0, height-1 do
for x=0, width-1 do
set_rgb(x,y, bcontrast_get_rgb(x,y,brightness,contrast))
end
end
flush()
end
bcontrast(0.25, 2.0)
什麼是birghtness和對比度值的範圍是多少?在Gimp中,這些值範圍從-127到127.但是與bcontrast(0.25,2.0)似乎不在這個領域。有什麼建議麼? –
我不知道。你應該檢查這個gimp源代碼。 (0,10)中的對比度和(-1,1)中的亮度可能是有意義的。您還應該注意將0鉗位到負像素值,並將其鉗位到1個更大的值。 @ChristianGold – Miki