카테고리 없음

[Python][OpenCV] 이미지 열고 명암비 조절 후 저장하기 - 평균 밝기를 기준으로

miiinn 2022. 10. 13. 15:27

🔎 문제

sample.jpg 파일에 대해서 이미지의 평균 밝기를 기준으로 하여 명암비를 조절한 결과를 contrast.jpg로 저장하세요.

* 명암비 조절 시 원본의 pixel 값에 일정한 값을 곱하는 형태로 하되, 계수는 2.0을 사용해주세요.
* 결과 저장 시 saturation 연산을 적용해주세요.

 

sample.jpg

 

import cv2 as cv

def contrast():
    img2 = cv.imread('sample.jpg', cv.IMREAD_GRAYSCALE) # 이미지 파일 열기

    if img2 is None:
        print('Image load failed!')
        return

    alpha = 1.0 # 기울기가 2이려면 alpha값은 1.0이어야 한다.
    # convertScaleAbs를 이용해 평균 밝기를 기준으로 기울기(계수)는 2로 하여 명암비를 조절한다.
    img2 = cv.convertScaleAbs(img2, alpha = 1+alpha, beta = -img2.mean()*alpha)

    # saturate - 포화연산을 하여 0보다 작으면 0에 수렴하게, 255보다 크면 255에 수렴하게, 그 외엔 원본값
    img2[img2 < 0] = 0
    img2[img2 > 255] = 255

    # contrast.jpg로 저장
    cv.imwrite('contrast.jpg', img2)

    cv.imshow('image', img2)
    cv.waitKey()

contrast()

 

contrast.jpg