Interface2017年05月号新画像処理101を読む

技2 明るさの調整

2-1 直線的に明るさを増減する「バイアス調整」

img_src = cv2.imread("data/Mandrill.png")
#cvtColor関数を使用してグレイ画像を作成
img_gray_origin = cv2.cvtColor(img_src,cv2.COLOR_RGB2GRAY) 

img_dst = np.zeros_like(img_gray_origin)

Y = img_gray_origin.shape[0]
X = img_gray_origin.shape[1]
for y in range(Y):
    for x in range(X):
        p = img_gray_origin[y,x] + 45
        if p > 255:
            p = 255
        elif p < 0:
            p = 0
        img_dst[y,x] = p

#描画する
cv2.imshow("img_src",img_gray_origin)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

#ヒストグラム
fig = plt.figure()
ax1 = fig.add_subplot(211) #総行数,総列数、サブプロット番号
ax2 = fig.add_subplot(212)
color_list = ["gray"]
for i,j in enumerate(color_list):
    hist = cv2.calcHist([img_gray_origin],[i],None,[256],[0,256])
    ax1.plot(hist,color = j)

for i,j in enumerate(color_list):
    hist = cv2.calcHist([img_dst],[i],None,[256],[0,256])
    ax2.plot(hist,color = j)

f:id:bitop:20180120140004p:plain

f:id:bitop:20180120140059p:plain

f:id:bitop:20180120140155p:plain