OpenCV图像处理——直方图

目录

  • 灰度直方图
    • 原理
    • 直方图的计算和绘制
    • 掩模的应用
  • 直方图均衡化
    • 原理与应用
    • 自适应的直方图均衡化

灰度直方图

原理

OpenCV图像处理——直方图_第1张图片

OpenCV图像处理——直方图_第2张图片

直方图的计算和绘制

cv.calcHist(images,channels,mask,histsize,ranges[,hist[,accumlate]])

OpenCV图像处理——直方图_第3张图片

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

img=cv.imread('./汪学长的随堂资料/4/图像操作/cat.jpg',0)
hist=cv.calcHist([img],[0],None,[256],[0,256])
plt.figure(figsize=(10,8))
plt.plot(hist)
plt.show()

OpenCV图像处理——直方图_第4张图片

掩模的应用

OpenCV图像处理——直方图_第5张图片

mask=np.zeros(img.shape[:2],np.uint8)
mask[50:200,50:200]=1
mask_img=cv.bitwise_and(img,img,mask=mask)
plt.imshow(mask_img,cmap='gray')

OpenCV图像处理——直方图_第6张图片

mask_hist=cv.calcHist([img],[0],mask,[256],[0,256])
plt.plot(mask_hist)
plt.show()

OpenCV图像处理——直方图_第7张图片

直方图均衡化

原理与应用

OpenCV图像处理——直方图_第8张图片
OpenCV图像处理——直方图_第9张图片

dst=cv.equalizeHist(img)

OpenCV图像处理——直方图_第10张图片

dst=cv.equalizeHist(img)
plt.imshow(dst,cmap='gray')

自适应的直方图均衡化

OpenCV图像处理——直方图_第11张图片

cv.createCLAHE(clipLimit,tileGridSize)

在这里插入图片描述

cl=cv.createCLAHE(2.0,(8,8))
clahe=cl.apply(img)
plt.imshow(clahe,cmap='gray')

你可能感兴趣的:(tensorflow解决cv,opencv,图像处理,人工智能)