numpy数组高级索引
今天在复习CV课上的直方图均衡化的代码,整个原理都弄清楚了,但是对于其中几行代码的实现过程一直非常难以理解(一上午痛苦了好久QAQ),不过幸好终于弄明白了,记录一下。
这是直方图均衡化的一种标准代码:
疑惑点在于integral
how does it become a function???
第一反应是去查找Python的函数功能,难道不用def也可以吗???查了半天感觉不太对。
然后我冷静下来回想一下原理,直方图均衡化的关键在于一个映射/函数,它把原图片每个点的灰度值映射到另一个灰度值,范围都是0到255的整数,Integral是一个一维数组,有256个位置,integral代表的不就是原来为i的灰度值映射到Integral[i]去吗?
但是integral[b]是什么意思呢?
按照我们的拆分,把一个彩色图像分成bgr三个通道,现在他们都是三维数组,为什么三维数组可以作为Integral的索引呢?
首先我先自己试了一下
integral = np.array([2, 1, 0])
integral1 = [2, 1, 0]
a = np