当前位置: 首页 > wzjs >正文

教育培训机构网站源码网站排名查询软件

教育培训机构网站源码,网站排名查询软件,用手机什么软件做网站,wordpress文章默认模板名叫什么目录 一、直方图是什么? 二、绘制直方图 代码示例 运行结果 三、直方图均衡化 1. 全局直方图均衡化 代码示例 运行结果 四、自适应直方图均衡化 1. 对比度受限的自适应直方图均衡化(CLAHE) 代码示例 运行结果 五、总结 在图像处…

目录

一、直方图是什么?

二、绘制直方图

代码示例

运行结果

三、直方图均衡化

1. 全局直方图均衡化

代码示例

运行结果

四、自适应直方图均衡化

1. 对比度受限的自适应直方图均衡化(CLAHE)

代码示例

运行结果

五、总结


在图像处理中,直方图均衡化是一种常用的图像增强技术,它可以帮助我们改善图像的对比度和亮度,使图像的细节更加清晰。本文将详细介绍直方图均衡化的原理和实现方法,并通过代码示例进行说明。

一、直方图是什么?

直方图是一种统计工具,用于表示图像中像素值的分布情况。具体来说,直方图的横坐标是像素值(从 0 到 255),纵坐标是每个像素值出现的频率(即像素数量)。通过直方图,我们可以直观地了解图像的亮度分布情况。

例如,如果一幅图像的直方图集中在左侧(低灰度值区域),说明图像整体偏暗;如果集中在右侧(高灰度值区域),说明图像整体偏亮。

二、绘制直方图

在 OpenCV 中,可以使用 cv2.calcHist() 函数来计算图像的直方图。这个函数会返回一个数组,表示每个灰度值的像素数量。

代码示例

以下是一个绘制直方图的函数:

import cv2
import numpy as npdef show_bins(img2):# 计算直方图bins = cv2.calcHist([img2], [0], None, [256], [0, 256])print(bins)# 获取直方图的最小值和最大值min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(bins)print(min_val, max_val, min_loc, max_loc)# 创建一个空白图像用于绘制直方图img_bins = np.zeros((512, 512, 3), dtype=np.uint8)dm = 450 / max_val  # 缩放比例# 绘制直方图for index, el in enumerate(bins):cv2.line(img_bins, (index + 100, 490), (index + 100, int(490 - el[0] * dm)), (0, 0, 255), 2)cv2.imshow("img_bins", img_bins)cv2.waitKey(0)return img_bins

运行结果

运行上述代码后,你会看到一个窗口显示了图像的直方图。横坐标是像素值,纵坐标是每个像素值的频率。

三、直方图均衡化

直方图均衡化是一种改善图像对比度的技术。它的目标是将图像的直方图分布调整为均匀分布,从而使图像的亮度和对比度更加均衡。

1. 全局直方图均衡化

全局直方图均衡化是对整个图像进行均衡化处理。它通过重新映射像素值,使图像的直方图分布更加均匀。

在 OpenCV 中,可以使用 cv2.equalizeHist() 函数来实现全局直方图均衡化。

代码示例

def test002():# 读取图像img = cv2.imread("./zhifang.png")img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 绘制原始图像的直方图bins_img = show_bins(img2)cv2.imshow("bins_img", bins_img)cv2.imshow("img2", img2)# 进行直方图均衡化eq_img2 = cv2.equalizeHist(img2)eq_bins_img = show_bins(eq_img2)cv2.imshow("eq_bins_img", eq_bins_img)cv2.imshow("eq_img2", eq_img2)cv2.waitKey(0)cv2.destroyAllWindows()

运行结果

运行上述代码后,你会看到均衡化后的图像对比度明显提高,直方图分布也更加均匀。

四、自适应直方图均衡化

全局直方图均衡化虽然可以改善图像的整体对比度,但在某些情况下可能会导致局部细节丢失。为了解决这个问题,可以使用自适应直方图均衡化(AHE)。

自适应直方图均衡化将图像划分为多个小块,对每个小块分别进行直方图均衡化处理。这样可以更好地保留局部细节。

1. 对比度受限的自适应直方图均衡化(CLAHE)

CLAHE 是一种改进的自适应直方图均衡化方法,它通过限制对比度增强的程度,避免了噪声的过度放大。

在 OpenCV 中,可以使用 cv2.createCLAHE() 函数来创建 CLAHE 对象,然后使用 .apply() 方法对图像进行均衡化处理。

代码示例

import cv2
import numpy as npdef test_clahe():# 读取图像img = cv2.imread("./zhifang.png")img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 创建 CLAHE 对象clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))# 应用 CLAHEclahe_img2 = clahe.apply(img2)# 绘制原始图像和均衡化后的图像cv2.imshow("Original Image", img2)cv2.imshow("CLAHE Image", clahe_img2)cv2.waitKey(0)cv2.destroyAllWindows()

运行结果

运行上述代码后,你会看到 CLAHE 处理后的图像对比度更高,同时局部细节也得到了更好的保留。

五、总结

直方图均衡化是一种非常实用的图像增强技术,可以帮助我们改善图像的对比度和亮度。通过本文的介绍和代码示例,相信你已经对直方图均衡化有了更深入的理解。

  • 全局直方图均衡化:适用于整体对比度较低的图像。

  • 自适应直方图均衡化(CLAHE):适用于局部对比度较低且需要保留细节的图像。

http://www.dtcms.com/wzjs/185226.html

相关文章:

  • ps做网站大小网络促销方案
  • 哪些网站做的好看的免费网页制作模板
  • 企业互联网网站定位突发大事震惊全国
  • 在哪做网站建设曼联官方发文
  • 如何做百度推广的网站谷歌搜索网页版入口
  • 商城网站建设需求搜索引擎优化的方法与技巧
  • 造价员建设部网站3000块钱在朋友圈投放广告
  • 用什么做网站线上营销模式
  • 网站设计创意方案免费奖励自己的网站
  • 景德镇做网站关键词快速上首页排名
  • 大兴西红门网站建设网站技术解决方案
  • 珠海网站seogoogle chrome谷歌浏览器
  • c 怎么做能让窗体访问网站外贸推广哪个公司好
  • 遂宁做网站的公司seo短视频网页入口引流下载
  • 龙岩做网站开发大概价格企业文化建设方案
  • 网站竞价河北百度seo关键词排名
  • 找网络公司做网站需要注意百度手机app下载并安装
  • 网站框架与内容个人接广告的平台
  • 一个专门做标题的网站台州网站制作维护
  • 汕头建站模板厂家sem 优化软件
  • php mysql网站开发试题a打开百度一下网页版
  • 公司网站建设请示成都seo优化
  • 网站充值如何做post的江门seo推广公司
  • 建设安全监督站的网站广州网络推广服务商
  • 东莞网站优化哪家好热狗seo外包
  • 网页制作培训机构好不好上海优质网站seo有哪些
  • java做网站下载图片外贸推广代理
  • flash 3d 网站源码seo搜索引擎优化方案
  • 国外设计文章的网站大数据获客系统
  • 北京南站疫情最新情况全域seo