콘트라스트를 변경해야하는 프로그램이 있지만, 콘트라스트를 실제로 변경하지 않는 것 같은 느낌이 듭니다. 일부 영역은 빨간색으로 변경되지만 원하지는 않습니다. 그들을 제거하는 법을 제게 말할 수 있다면, 고마워요. 여기 코드입니다 : 여기PIL에서 이미지의 대비를 변경하십시오.
from PIL import Image
def change_contrast(img, level):
img = Image.open("C:\\Users\\omar\\Desktop\\Site\\Images\\obama.png")
img.load()
factor = (259 * (level+255))/(255 * (259-level))
for x in range(img.size[0]):
for y in range(img.size[1]):
color = img.getpixel((x, y))
new_color = tuple(int(factor * (c-128) + 128) for c in color)
img.putpixel((x, y), new_color)
return img
result = change_contrast('C:\\Users\\omar\\Desktop\\Site\\Images\\test_image1.jpg', 100)
result.save('C:\\Users\\omar\\Desktop\\Site\\Images\\test_image1_output.jpg')
print('done')
그리고 이미지와 그 결과이 실제 대비 방법을 경우
이 나에게
재현 할 수 없습니다. 귀하의 코드를 시도하고 출력 이미지가 좋아 보인다. https://i.stack.imgur.com/QhR3n.jpg –
코드에는 입력 이미지를로드 할 때 두 가지 시도가 있습니다. 함수 바디에'obama.png'가 하드 코딩되어 있기 때문에'test_image1.jpg'는 사용되지 않습니다. 사용하고 있다고 생각하는 입력 파일을 사용하고 있습니까? –