⼀、图像直⽅图显⽰(python)
1. 图像处理中绘制图像直⽅图往往是观察和处理图像的利器之⼀。
2. 直⽅图的观察⽅⾯的基本知识:
1. 横坐标代表着灰度级、纵坐标是该灰度值在图像中出现的概率或者次数。
2. 直⽅图的型态为斜态和峰态,斜态指的是直⽅图的不对称的程度,峰态表⽰的是直⽅图的分布在均值周围的集中程度。
3. 直⽅图可以基本上反映出图像对⽐度的基本情况。
3. 直⽅图的基本性质
1. 直⽅图没有位置信息。
2. 直⽅图反映了总体灰度分布。
3. 直⽅图具有可叠加性。
第四色男人最爱
4. 直⽅图具有统计性。好听的歌曲
冷云
不多BB,上代码:
实现⼀:
from PIL import Image
from pylab import*
import cv2
from tqdm import tqdm
def Rgb2gray(image):
h = image.shape[0]
w = image.shape[1]
grayimage = np.zeros((h,w),np.uint8)
for i in tqdm(range(h)):
for j in range(w):
grayimage [i,j]=0.144*image[i,j,0]+0.587*image[i,j,1]+0.299*image[i,j,1]
return grayimage
# 读取图像到数组中,并灰度化
image = cv2.imread("peng.png")
im = array(Image.open('peng.png').convert('L'))
# 直⽅图图像
# flatten可将⼆维数组转化为⼀维
hist(image.flatten(),128)
# 显⽰
show()
显⽰效果图如下:
实现⽅法⼆:
朗读手册
import cv2
import matplotlib.pyplot as plt
import numpy as np
import math
import os
import pandas as pd
from tqdm import tqdm
# 绘制直⽅图函数
def grayHist(img):
歌曲宁夏
h, w = img.shape[:2]
pixelSequence = shape([h * w,])
工民建专业numberBins =256
水的形状
histogram, bins, patch = plt.hist(pixelSequence, numberBins, facecolor='black', histtype='bar')
plt.xlabel("gray label")
plt.ylabel("number of pixels")
plt.axis([0,255,0, np.max(histogram)])
plt.show()树化玉
image = cv2.imread("peng.png",0)
grayHist(image)
显⽰效果如下: