您的位置:首页 > 编程语言 > Python开发

基于Python的opencv学习练习(十三)直方图绘制

2019-05-24 14:46 656 查看
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('home.jpg',0)
plt.hist(img.ravel(),256,[0,256]);
plt.show()

第一个参数是将图像展开成一维,第二个将灰度图像分成结果bins
第三个为显示灰度的范围

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

img = cv2.imread('2.jpg',0)
hist = cv2.calcHist([image], [0], None, [256], [0, 256])

hist=np.bincount(img.ravel() ,minlength=256)
hist, bins = np.histogram(image.ravel(), 256, [0,256])

plt.plot(hist, color = 'r')
plt.show()
import cv2
import matplotlib.pyplot as plt
import numpy as np

img = cv2.imread('2.jpg',0)

# create a mask
mask = np.zeros(img.shape[:2], np.uint8)
mask[100:300, 100:400] = 255
masked_img = cv2.bitwise_and(img,img,mask = mask)
# Calculate histogram with mask and without mask
# Check third argument for mask
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()
import cv2
import matplotlib.pyplot as plt
import numpy as np

img = cv2.imread('2.jpg',1)

color = ('b','g','r')
# 对一个列表或数组既要遍历索引又要遍历元素时
# 使用内置 enumerrate 函数会有更加直接,优美的做法
#enumerate 会将数组或列表组成一个索引序列。
# 使我们再获取索引和索引内容的时候更加方便
for i,col in enumerate(color):
histr = cv2.calcHist([img],[i],None,[256],[0,256])
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.show()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: