Попытка изменить среднюю яркость пикселей двух изображений на среднее значение (между ними) с помощью PIL в Python ⇐ Python
Попытка изменить среднюю яркость пикселей двух изображений на среднее значение (между ними) с помощью PIL в Python
У меня есть 2 изображения, я рассчитал среднюю яркость пикселей для обоих, затем вычислил среднюю точку между средней яркостью и факторами, необходимыми для изменения каждого изображения для достижения этой «целевой» средней точки.
Однако, когда я запускаю фактор через функцию ImageEnhance (https://pillow.readthedocs.io/en/stable ... hance.html), измененное изображение не соответствует целевой средней точке. Не знаю почему. Изображения прилагаются.
Вот мой код, показывающий, как я рассчитываю среднюю яркость для каждого изображения и как я вычисляю среднюю точку/коэффициент и пытаюсь улучшить изображение. Здесь что-то не так или это проблема с Pillow?
def Calculate_average_brightness(изображение): """ Рассчитайте среднее значение насыщенности изображения. """ яркость = 0 пикселей = image.convert('L').getdata() total_pixels = len(пикселей) яркость = [] для пикселя в пикселях: яркость.append(пиксель) средняя_яркость = сумма (яркость) / общее количество пикселей вернуть среднюю_яркость, яркость img1_path = os.path.join(path, "face_ai_midjourney (278).jpg") img2_path = os.path.join(path, "face_real (10).jpg") img1 = Image.open(img1_path) img2 = Image.open(img2_path) img1_bright, яркость = Calculation_average_brightness(img1) img2_bright, яркость_2 = вычислить_среднюю_яркость (img2) середина = (img1_bright + img2_bright)/2 фактор1 = середина/img1_bright фактор2 = середина/img2_bright obj = ImageEnhance.Brightness(img1) а = obj.enhance(фактор1) img1_bright2, яркость2 = Calculation_average_brightness(a) img1 изображение2
Я проверил, не заключалась ли проблема в том, что количество пикселей либо достигло максимального значения 255 после корректировки, либо уменьшилось до 0, однако для img1 (которое увеличивается, максимальное значение пикселя после корректировки коэффициента все еще ниже 255).< /п> Не уверен, что еще может произойти (просто из-за проблем с округлением? В этом случае я бы не ожидал, что разница от средней точки будет настолько большой)
У меня есть 2 изображения, я рассчитал среднюю яркость пикселей для обоих, затем вычислил среднюю точку между средней яркостью и факторами, необходимыми для изменения каждого изображения для достижения этой «целевой» средней точки.
Однако, когда я запускаю фактор через функцию ImageEnhance (https://pillow.readthedocs.io/en/stable ... hance.html), измененное изображение не соответствует целевой средней точке. Не знаю почему. Изображения прилагаются.
Вот мой код, показывающий, как я рассчитываю среднюю яркость для каждого изображения и как я вычисляю среднюю точку/коэффициент и пытаюсь улучшить изображение. Здесь что-то не так или это проблема с Pillow?
def Calculate_average_brightness(изображение): """ Рассчитайте среднее значение насыщенности изображения. """ яркость = 0 пикселей = image.convert('L').getdata() total_pixels = len(пикселей) яркость = [] для пикселя в пикселях: яркость.append(пиксель) средняя_яркость = сумма (яркость) / общее количество пикселей вернуть среднюю_яркость, яркость img1_path = os.path.join(path, "face_ai_midjourney (278).jpg") img2_path = os.path.join(path, "face_real (10).jpg") img1 = Image.open(img1_path) img2 = Image.open(img2_path) img1_bright, яркость = Calculation_average_brightness(img1) img2_bright, яркость_2 = вычислить_среднюю_яркость (img2) середина = (img1_bright + img2_bright)/2 фактор1 = середина/img1_bright фактор2 = середина/img2_bright obj = ImageEnhance.Brightness(img1) а = obj.enhance(фактор1) img1_bright2, яркость2 = Calculation_average_brightness(a) img1 изображение2
Я проверил, не заключалась ли проблема в том, что количество пикселей либо достигло максимального значения 255 после корректировки, либо уменьшилось до 0, однако для img1 (которое увеличивается, максимальное значение пикселя после корректировки коэффициента все еще ниже 255).< /п> Не уверен, что еще может произойти (просто из-за проблем с округлением? В этом случае я бы не ожидал, что разница от средней точки будет настолько большой)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение