Python을 사용하여 그림의 밝기와 대비를 조정하는 방법
소개:
이미지 처리에서 밝기와 대비를 조정하는 것은 일반적이고 중요한 작업 중 하나입니다. Python은 이 두 가지 작업을 쉽게 구현할 수 있는 PIL, OpenCV 등과 같은 풍부한 이미지 처리 라이브러리를 제공합니다. 이 기사에서는 Python 코드를 사용하여 이미지의 밝기와 대비를 조정하는 방법을 소개하고 해당 코드 예제를 제공합니다.
1부: 이미지 밝기 조정
이미지 밝기 조정은 각 픽셀의 RGB 값을 변경하여 수행할 수 있습니다. 구체적인 방법은 각 픽셀의 RGB 값에 고정된 증분을 추가하는 것입니다. 다음은 PIL 라이브러리를 사용하여 이미지의 밝기를 조정하는 샘플 코드입니다.
from PIL import ImageEnhance # 打开图像 image = Image.open('image.jpg') # 创建Enhancer对象 enhancer = ImageEnhance.Brightness(image) # 调整亮度为原来的2倍 bright_image = enhancer.enhance(2) # 显示图像 bright_image.show() # 保存图像 bright_image.save('bright_image.jpg')
위 코드에서는 먼저 Image.open() 함수를 통해 이미지를 연 다음 ImageEnhance를 사용하여 Enhancer 객체를 생성합니다. .밝기() 함수. 그런 다음 Enhancer 객체의 Enhanced() 메서드를 사용하여 이미지의 밝기를 조정합니다. 매개변수는 밝기의 배수를 나타냅니다. 마지막으로 show() 메서드를 호출하여 조정된 이미지를 표시하거나 save() 메서드를 사용하여 이미지를 저장할 수 있습니다.
2부: 이미지 대비 조정
이미지 대비 조정은 각 픽셀의 상대적 밝기를 변경하여 이루어집니다. 구체적인 방법은 각 픽셀의 RGB 값에 고정된 증분을 곱하는 것입니다. 다음은 OpenCV 라이브러리를 사용하여 이미지의 대비를 조정하는 샘플 코드입니다.
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 提取亮度通道 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) v_channel = hsv_image[:,:,2] # 调整亮度为原来的2倍 contrast_image = cv2.addWeighted(v_channel, 2, np.zeros(v_channel.shape, v_channel.dtype), 0, 0) # 将亮度通道替换回原图像 hsv_image[:,:,2] = contrast_image contrast_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR) # 显示图像 cv2.imshow('contrast_image', contrast_image) cv2.waitKey(0) # 保存图像 cv2.imwrite('contrast_image.jpg', contrast_image)
위 코드에서는 먼저 cv2.imread() 함수를 사용하여 이미지를 읽은 다음 BGR 색상에서 이미지를 변환합니다. cv2.cvtColor() 함수를 사용하여 공간 HSV 색상 공간은 밝기 변화에 더 민감하므로 HSV 색상 공간으로 변환합니다. 그리고 밝기 채널 hsv_image[:,:,2]를 추출하여 밝기를 나타내는 2차원 배열 v_channel을 얻는다.
그런 다음 cv2.addWeighted() 함수를 사용하여 밝기 채널을 선형으로 결합하여 대비를 조정합니다. 여기서 첫 번째 매개변수는 입력 이미지를 나타내고 두 번째 매개변수는 밝기의 배수를 나타내며 여기서는 2로 설정됩니다. 마지막으로 조정된 밝기 채널은 원래 이미지로 다시 대체되고 이미지는 cv2.cvtColor() 함수를 통해 HSV 색상 공간에서 BGR 색상 공간으로 다시 변환됩니다.
마지막으로 조정된 이미지는 cv2.imshow() 함수를 통해 표시되고, cv2.waitKey(0)는 키를 기다리는 데 사용되고, cv2.imwrite() 함수는 이미지를 저장하는 데 사용됩니다.
결론:
위의 코드 예제를 통해 Python을 사용하여 이미지의 밝기와 대비를 조정하는 것이 매우 간단하고 단 몇 줄의 코드만으로 달성할 수 있다는 것을 알 수 있습니다. 다양한 매개변수 설정을 통해 다양한 요구 사항을 충족하기 위해 다양한 수준의 밝기 및 대비 조정을 달성할 수 있습니다. 실제 적용에서는 최상의 결과를 얻기 위해 특정 상황에 따라 적절한 조정 방법과 매개변수를 선택할 수 있습니다. 이 글이 독자들의 이미지 처리 학습과 실습에 도움이 되기를 바랍니다.
위 내용은 Python을 사용하여 이미지의 밝기와 대비를 조정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!