ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

19_图像直方图

2022-08-03 12:02:03  阅读:193  来源: 互联网

标签:plt img 19 mask cv2 直方图 图像 256


# 图像直方图

# 1. 图像直方图简介

# 2. 图像直方图统计
import cv2
import numpy as np
import matplotlib.pyplot as plt

def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()

img = cv2.imread('D:/pycharm/pycharm-cope/opencv/resource/photo/01_Cat.jpg',0) # 0 表示灰度图
print((img.ravel()).shape)
plt.hist(img.ravel(),256) # img.ravel()将 img 拉成一维数组
plt.show()

img = cv2.imread('D:/pycharm/pycharm-cope/opencv/resource/photo/01_Cat.jpg')
color = ('b','g','r')
for i,col in enumerate(color):
    histr = cv2.calcHist([img],[i],None,[256],[0,256])
    print(histr.shape)
    plt.plot(histr,color=col)
    plt.xlim([0,256])

# 3. 图像掩码区域

img = cv2.imread('D:/pycharm/pycharm-cope/opencv/resource/photo/01_Cat.jpg',0)
# cv_show(img,'img')
print(img.shape[:2])
mask = np.zeros(img.shape[:2],np.uint8)# np.uint8无符号整形
print(mask.shape)
mask[100:300,100:400] = 255
# cv_show(mask,'mask')
masked_img = cv2.bitwise_and(img,img,mask=mask) # 与操作
cv_show(np.hstack((img,mask,masked_img)),'res')

# 4. 图像掩码直方图

hist_full = cv2.calcHist([img],[0],None,[256],[0,256]) # 不带掩码统计直方图
hist_mask = cv2.calcHist([img],[0],mask,[256],[0,256]) # 带上掩码统计直方图
plt.subplot(221), plt.imshow(img,'gray')
plt.subplot(222), plt.imshow(mask,'gray')
plt.subplot(223), plt.imshow(masked_img,'gray')
plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask) # 掩码对应的部分区域的直方图的量要小一些
plt.xlim([0,256])
plt.show()

# 5. 直方图均衡化

img = cv2.imread('D:/pycharm/pycharm-cope/opencv/resource/photo/16_Clahe.jpg',0)
plt.hist(img.ravel(),256)
plt.show()

equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(),256)
plt.show()

res = np.hstack((img,equ))
cv_show(res,'res')

# 6. 自适应直方图均衡化

img = cv2.imread('D:/pycharm/pycharm-cope/opencv/resource/photo/16_Clahe.jpg',0)
clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8)) # 自适应均衡化方法生成出来
res_clahe = clahe.apply(img) # 方法应用到输入图片当中
res = np.hstack((img,equ,res_clahe))
cv_show(res,'res')

 

标签:plt,img,19,mask,cv2,直方图,图像,256
来源: https://www.cnblogs.com/tuyin/p/16546369.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有