加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

OpenCV灰度图像直方图算法达成

发布时间:2021-11-12 11:13:05 所属栏目:PHP教程 来源:互联网
导读:手动实现一个灰度直方图算法,过程很简单,主要有以下几步: 1. 统计每一个像素灰度值 2. 计算每个灰度值出现的概率 3. 横坐标 0-255 4. 纵坐标为概率P 直方图效果如下: # 本质: 统计每一个像素灰度 出现的概率 横坐标 0-255 纵坐标 概率P import cv2 import
手动实现一个灰度直方图算法,过程很简单,主要有以下几步:
 
1. 统计每一个像素灰度值
 
2. 计算每个灰度值出现的概率
 
3. 横坐标 0-255
 
4. 纵坐标为概率P
 
直方图效果如下:
 
# 本质: 统计每一个像素灰度 出现的概率  横坐标 0-255 纵坐标 概率P
import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img = cv2.imread('wwww.linuxidc.com.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
count = np.zeros(256, np.float) # 因为是概率, 有可能是浮点数
 
# 统计像素个数并计算概率
for i in range(height):
    for j in range(width):
        pixel = gray[i, j]
        index = int(pixel)
        count[index] = count[index] + 1
 
total = height * width # 总像素个数
count =  count / total  # 计算概率
 
# 画图
x = np.linspace(0, 255, 256)
y = count
plt.bar(x, y, 0.9, alpha = 1, color = "b")
plt.show()

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读