Python OpenCV中PIL库函数ImageEnhance.Contrast(image).enhance(param)的等价物是什么?
我已经将一些PIL库函数转换为OpenCV函数,但是我找不到使用OpenCV函数替代以下函数的方法。以下是PIL库函数:Python OpenCV中PIL库函数ImageEnhance.Contrast(image).enhance(param)的等价物是什么?,python,opencv,image-processing,python-imaging-library,Python,Opencv,Image Processing,Python Imaging Library,我已经将一些PIL库函数转换为OpenCV函数,但是我找不到使用OpenCV函数替代以下函数的方法。以下是PIL库函数: img=ImageEnhance.Contrast(图像).enhance(参数) 这个过程非常简单。您可以在OpenCV中进行模拟(此处:仅针对BGR图像,您需要添加对所有可能颜色类型的支持): 导入cv2 将numpy作为np导入 从PIL导入图像,图像增强 def cv2增强对比度(img,系数): 平均值=np.uint8(cv2.mean(cv2.CVT颜色(img
img=ImageEnhance.Contrast(图像).enhance(参数)
这个过程非常简单。您可以在OpenCV中进行模拟(此处:仅针对BGR图像,您需要添加对所有可能颜色类型的支持):
导入cv2
将numpy作为np导入
从PIL导入图像,图像增强
def cv2增强对比度(img,系数):
平均值=np.uint8(cv2.mean(cv2.CVT颜色(img,cv2.COLOR_BGR2GRAY))[0])
img_deg=np.类img(img)*平均值
返回cv2.addWeighted(img,因子,img_deg,1因子,0.0)
下面是一些测试代码:
导入cv2
从matplotlib导入pyplot作为plt
将numpy作为np导入
从PIL导入图像,图像增强
def cv2增强对比度(img,系数):
平均值=np.uint8(cv2.mean(cv2.CVT颜色(img,cv2.COLOR_BGR2GRAY))[0])
img_deg=np.类img(img)*平均值
返回cv2.addWeighted(img,因子,img_deg,1因子,0.0)
img_pil=Image.open('path/to/your/Image.png'))
img_pil_enh=图像增强对比度(img_pil).enhance(0.25)
img_cv=cv2.imread('path/to/your/image.png'))
img_cv_enh=cv2_增强对比度(img_cv,0.25)
plt.图(figsize=(8,8))
plt.子地块(2,2,1),plt.imshow(img_pil),plt.title(‘pil original’)
plt.子地块(2,2,3),plt.imshow(img_pil_enh),plt.title('pil enhanced')
plt.子地块(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增强')
plt.tight_布局(),plt.show()
这就是输出:
----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.8.5
Matplotlib:3.3.2
努比:1.19.3
OpenCV:4.4.0
枕头:8.0.1
----------------------------------------
这个过程非常简单。您可以在OpenCV中进行模拟(此处:仅针对BGR图像,您需要添加对所有可能颜色类型的支持):
导入cv2
将numpy作为np导入
从PIL导入图像,图像增强
def cv2增强对比度(img,系数):
平均值=np.uint8(cv2.mean(cv2.CVT颜色(img,cv2.COLOR_BGR2GRAY))[0])
img_deg=np.类img(img)*平均值
返回cv2.addWeighted(img,因子,img_deg,1因子,0.0)
下面是一些测试代码:
导入cv2
从matplotlib导入pyplot作为plt
将numpy作为np导入
从PIL导入图像,图像增强
def cv2增强对比度(img,系数):
平均值=np.uint8(cv2.mean(cv2.CVT颜色(img,cv2.COLOR_BGR2GRAY))[0])
img_deg=np.类img(img)*平均值
返回cv2.addWeighted(img,因子,img_deg,1因子,0.0)
img_pil=Image.open('path/to/your/Image.png'))
img_pil_enh=图像增强对比度(img_pil).enhance(0.25)
img_cv=cv2.imread('path/to/your/image.png'))
img_cv_enh=cv2_增强对比度(img_cv,0.25)
plt.图(figsize=(8,8))
plt.子地块(2,2,1),plt.imshow(img_pil),plt.title(‘pil original’)
plt.子地块(2,2,3),plt.imshow(img_pil_enh),plt.title('pil enhanced')
plt.子地块(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增强')
plt.tight_布局(),plt.show()
这就是输出:
----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.8.5
Matplotlib:3.3.2
努比:1.19.3
OpenCV:4.4.0
枕头:8.0.1
----------------------------------------