亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OpenCV中PIL庫函數ImageEnhance.Contrast(image).

OpenCV中PIL庫函數ImageEnhance.Contrast(image).

絕地無雙 2024-01-27 16:40:02
我已將一些 PIL 庫函數轉換為 OpenCV 函數,但我找不到使用 OpenCV 函數的以下函數的替代品。這是PIL庫函數:img = ImageEnhance.Contrast(image).enhance(param)
查看完整描述

1 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

實現PIL.ImageEnhance.Contrast非常簡單。您可以在 OpenCV 中模仿(此處:僅對于 BGR 圖像,您需要添加對所有可能的顏色類型的支持):

import cv2

import numpy as np

from PIL import Image, ImageEnhance



def cv2_enhance_contrast(img, factor):

? ? mean = np.uint8(cv2.mean(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY))[0])

? ? img_deg = np.ones_like(img) * mean

? ? return cv2.addWeighted(img, factor, img_deg, 1-factor, 0.0)

這是一些測試代碼:


import cv2

from matplotlib import pyplot as plt

import numpy as np

from PIL import Image, ImageEnhance



def cv2_enhance_contrast(img, factor):

? ? mean = np.uint8(cv2.mean(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY))[0])

? ? img_deg = np.ones_like(img) * mean

? ? return cv2.addWeighted(img, factor, img_deg, 1-factor, 0.0)



img_pil = Image.open('path/to/your/image.png')

img_pil_enh = ImageEnhance.Contrast(img_pil).enhance(0.25)

img_cv = cv2.imread('path/to/your/image.png')

img_cv_enh = cv2_enhance_contrast(img_cv, 0.25)


plt.figure(figsize=(8, 8))

plt.subplot(2, 2, 1), plt.imshow(img_pil), plt.title('PIL original')

plt.subplot(2, 2, 3), plt.imshow(img_pil_enh), plt.title('PIL enhanced')

plt.subplot(2, 2, 2), plt.imshow(img_cv[:, :, ::-1]), plt.title('OpenCV original')

plt.subplot(2, 2, 4), plt.imshow(img_cv_enh[:, :, ::-1]), plt.title('OpenCV enhanced')

plt.tight_layout(), plt.show()

這就是輸出:

https://img1.sycdn.imooc.com/65b4c2e00001a40606530652.jpg

----------------------------------------

System information

----------------------------------------

Platform:? ? Windows-10-10.0.16299-SP0

Python:? ? ? 3.8.5

Matplotlib:? 3.3.2

NumPy:? ? ? ?1.19.3

OpenCV:? ? ? 4.4.0

Pillow:? ? ? 8.0.1

----------------------------------------


查看完整回答
反對 回復 2024-01-27
  • 1 回答
  • 0 關注
  • 445 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號