关于图片美化部分的解释有直方图 直方图均衡化 亮度增强 磨皮美白 图像滤波 高斯滤波 等11种效果。其中,彩色图片直方图实现与显示见本文以下内容,其余美化效果在之后的文章中解释。
# 美化章节:
# 11种美化效果
import cv2
import numpy as np
# 彩色图片直方图方法
def ImageHist(image, type):
color = (255, 255, 255)
windowName = 'Gray'
if type == 31:
color = (255, 0, 0)
windowName = 'B Hist'
if type == 32:
color = (0, 255, 0)
windowName = 'G Hist'
if type == 33:
color = (0, 0, 255)
windowName = 'R Hist'
# 计算直方图 参数:图像:[image] 直方图通道:[0] 掩膜:None 灰度级:[256] 像素范围:0~255
hist = cv2.calcHist([image], [0], None, [256], [0.0, 255.0])
# 寻找全局最小最大元素及其对应的下标
minV, maxV, minL, maxL = cv2.minMaxLoc(hist)
# 创建画布 创建爱零矩阵时第一个参数为shape格式( , ,)
histImg = np.zeros((256, 256, 3), np.uint8)
for h in range(256): # 0~255
# 归一化数据
intenNormal = int(hist[h] * 256 / maxV)
# 绘制不同颜色的直方图 参数:histImg 起始位置 终止位置 颜色
cv2.line(histImg, (h, 256), (h, 256 - intenNormal), color)
cv2.imshow(windowName, histImg)
return histImg
img = cv2.imread('1.jpg', 1)
channels = cv2.split(img)
for i in range(0, 3):
ImageHist(channels[i], 31 + i)
cv2.waitKey(0)
各个通道的直方图如下:
image.png
网友评论