900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python统计图像直方图_计算机视觉7-像素点直方图统计 掩膜图像

python统计图像直方图_计算机视觉7-像素点直方图统计 掩膜图像

时间:2022-03-05 19:29:16

相关推荐

python统计图像直方图_计算机视觉7-像素点直方图统计 掩膜图像

1.灰度图的直方图

(1)调用库

import cv2

import matplotlib.pyplot as plt

import numpy as np #创建掩膜时需要

(2)绘图-方法1

img=cv2.imread('F:cat.jpg',0)

plt.hist(img.ravel(),256,[0,256])

plt.show()

plt.hist是一个画直方图的命令;img.ravel()可以将图片转化成一维数组,直方图的信息都是从这里提取出来的;256是BIN的数目,[0,256]是像素取值范围,相当于在0-256的像素值范围内化了256组(即BIN数)

运行结果:

(3)绘图-方法2

img=cv2.imread('F:cat.jpg',0)

hist=cv2.calcHist([img],[0],None,[256],[0,256])

plt.plot(hist)

plt.show()

绘制一个plot图,plot的信息是从hist中提取,而hist的信息是通过calcHist计算得来的

运行结果如下:

(4)方法2线条颜色修改

img=cv2.imread('F:cat.jpg',0)

hist=cv2.calcHist([img],[0],None,[256],[0,256])

color=('black')

plt.plot(hist,color=color)

plt.show()

运行结果:

2.不同颜色通道的直方图

img=cv2.imread('F:cat.jpg')

color=('b','g','r')

for i,col in enumerate(color):

hist=cv2.calcHist([img],[i],None,[256],[0,256])

plt.plot(hist,color=col)

plt.xlim([0,256])

plt.show()

运行结果如下:

3.掩膜图像的直方图

(1)创建掩膜

mask=np.zeros(img.shape[:2],np.uint8)

print(mask.shape)

mask[111:222,100:400]=255

创建的掩膜和原图一样大小,但是对[111:111,100:400]的矩形框内赋予像素值为255

(2)绘图

hist_full=cv2.calcHist([img],[0],None,[256],[0,256])

hist_mask=cv2.calcHist([img],[0],mask,[256],[0,256])

plt.plot(hist_full),plt.plot(hist_mask)

plt.xlim([0,256])

plt.show()

运行结果如下:

(3)补充说明

掩上膜的图片可通过以下命令绘制出来,单纯地绘制像素点统计图不需要此步骤

masked_img=cv2.bitwise_and(img,img,mask=mask)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。