图像处理:灰度变换与图像增强

图像处理:灰度变换与图像增强

直方图均衡化增加图像的全局对比,直方图均值化,将低灰度值归并,高灰度值拉伸,当一个图像灰度分布均匀时,图像的整体细节与质量会提升很多

公式:

公式推导:

推导截图源自 直方图均衡化_schwein_van的博客-CSDN博客_直方图均衡化 该大佬博客

步骤:(以灰度深度8为例)

1,统计每个阶级灰度值的数量

2,计算每个阶级灰度值出现的概率

3,将每个概率的灰度值以前缀和的形式累加

4,将图片代入计算,p[x,y]*img[x,y]

原图

变换后的图像

可以明显的发现,太阳表面的光斑纹理更加清晰

代码:

def histogramEqualization(img, RGB=True):

newImg = np.zeros((img.shape[0], img.shape[1], 3), dtype=np.uint8)

N = img.shape[0] * img.shape[1]

BGR = np.zeros((3, 256), dtype=np.float)

for i in range(0, img.shape[0]):

for j in range(0, img.shape[1]):

BGR[0][img[i][j][0]] += 1

BGR[1][img[i][j][1]] += 1

BGR[2][img[i][j][2]] += 1

Pr = BGR / N

Ps = np.zeros((3, 256), dtype=np.float)

for i in range(0, 256):

if i == 0:

Ps[:, i] = Pr[:, i]

else:

Ps[:, i] += Ps[:, i - 1] + Pr[:, i]

for i in range(0, img.shape[0]):

for j in range(0, img.shape[1]):

b, g, r = img[i, j, :]

newImg[i][j] = [round(Ps[0][b] * 255), round(Ps[1][g] * 255), round(Ps[2][r] * 255)]

otherImg = cv2.equalizeHist(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY))

return newImg, otherImg

相关文章

松下开关插座优缺点 开关插座选购攻略
bte365正规网站

松下开关插座优缺点 开关插座选购攻略

⌛ 07-19 👁️‍🗨️ 1328
电脑搜索快捷键是哪个 电脑搜索快捷键介绍【详解】
bte365正规网站

电脑搜索快捷键是哪个 电脑搜索快捷键介绍【详解】

⌛ 07-01 👁️‍🗨️ 4797
战地3单人剧情通关时间及进入方法详解
365bet网上手机投注

战地3单人剧情通关时间及进入方法详解

⌛ 07-23 👁️‍🗨️ 4379
逆水寒手游情缘等级升级一览表:每一级要多长时间?奖励是什么?
365bet网上手机投注

逆水寒手游情缘等级升级一览表:每一级要多长时间?奖励是什么?

⌛ 09-06 👁️‍🗨️ 9090
如何在手机Excel中轻松添加图片
365在线体育

如何在手机Excel中轻松添加图片

⌛ 09-17 👁️‍🗨️ 3528
“棒女郎微商”靠谱吗?
365bet网上手机投注

“棒女郎微商”靠谱吗?

⌛ 08-10 👁️‍🗨️ 7819