wangqiuqiu_123 2020-04-16 09:56 采纳率: 0%
浏览 176

关于图像处理中直方图均衡化的一个问题

按照知乎上一篇文章的思路,构造了这样一个图片矩阵img,它总共有300个像素,其中100个灰度为50,100个灰度为51,100个灰度为52.
通过对整张图进行直方图均衡化处理,代码如下:

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

img = np.array([50]*100 + [51]*100 + [52]*100)   
img = img.astype(np.uint8)    # 原图片矩阵

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

hists_cumsum = np.cumsum(hist) 
const_a = 256/300
hists_cdf = const_a * hists_cumsum
hists_cdf[hists_cdf>255] = 255
hists_cdf = hists_cdf.astype(np.uint8)

#mapping
img_eq = hists_cdf[img]       #整体直方图均衡化后的图矩阵

灰度为 50-> 85

51->170
52->255

但是用opencv自带的函数,进行处理后结果如下:

equ = cv2.equalizeHist(img)

灰度为 50->0
51->128
52->255

为什么会有这样的差异呢,但是看opencv的文档,这个函数也是整体上进行直方图均衡化处理呀。

请大神解答下

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用三极管设计—个共射极放大电路
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示