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

企业网站推广方案上海wordpress机械免费主题

企业网站推广方案上海,wordpress机械免费主题,推广学校网站怎么做,国际公司办公室装修直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分配图像中的像素值,使得图像的像素值分布更加均匀,增强图像的对比度,从而改善图像的视觉效果。 直方图均衡化的过程如下: 灰度转换:如果图像是彩色…

直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分配图像中的像素值,使得图像的像素值分布更加均匀,增强图像的对比度,从而改善图像的视觉效果。

直方图均衡化的过程如下:

  • 灰度转换:如果图像是彩色图像,则首先需要将其转换为灰度图像。这可以通过将彩色图像的RGB通道值平均或权重化来实现,得到一个表示亮度的灰度图像。
  • 统计直方图:对于灰度图像,统计每个像素值的频数,生成原始图像的直方图。直方图表示了不同像素值的数量分布。
  • 计算累积分布函数:通过计算原始图像的累积分布函数,可以得到每个像素值的累积概率分布,即小于等于该像素值的概率。可以通过对直方图进行归一化和累加操作得到。
  • 映射像素值:根据每个像素值的累积概率分布映射出新的像素值,即将概率乘以255得到均衡化后的像素值。
  • 像素重新映射:对于原始图像中的每个像素,根据映射将其像素值替换为均衡化后的像素值。
  • 生成均衡化后的图像:根据重新映射的像素值,生成均衡化后的图像。均衡化后的图像在直方图上将有更平坦的分布,从而提高了图像的对比度。

可以直接调用openCV的库函数实现图像的直方图均衡化

cv2.equalizeHist(img)

可以写一个完整的测试代码如下

import matplotlib.pyplot as plt
import cv2img = cv2.imread("OIP.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.hist(img.ravel(), bins=256)
plt.title('origin')
plt.show()  # 原始直方图
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.title('origin')
plt.imshow(img)
plt.show()  # 原始灰度图img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.equalizeHist(img)
plt.hist(img.ravel(), bins=256)
plt.title('systemEqualize')
plt.show()  # 均衡化直方图
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.title('systemEqualize')
plt.show()  # 均衡化灰度图

 

在这里我们手动实现一个图像的直方图均衡化,不调用库函数

首先读取一张照片并将其转化为灰度图

img = cv2.imread("OIP.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

然后计算图像的直方图,并计算直方图的累积分布

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

再计算像素值的累积分布概率,并根据累积分布概率映射出新的像素值,根据该映射重新分配原图像的像素值,根据插值操作可以很方便的进行一一映射,这个interp函数非常的讲究,我研究了半天还是没有看懂它的作用,直到后来看到某位大佬的解说才醍醐灌顶恍然大悟——interpret(x,xp,yp)以xp和yp构造映射函数f,返回f(x),这就让我们的像素值映射变得简单

mapPixel = 255 * cdf / cdf[-1]
img = numpy.interp(img.ravel(), range(256), mapPixel).reshape(img.shape)

最后输出均衡化的图像以及均衡化的直方图,由于像素值是8位表示的,在刚才的计算过程中会使用64位进行存储,因此还需要对图像的像素值进行一下转换一下

img = cv2.convertScaleAbs(img)
plt.hist(img.ravel(), bins=256)
plt.title('myEqualize')
plt.show()  # 均衡化直方图
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.title('myEqualize')
plt.show()  # 均衡化灰度图

衡化后的图像的直方图如图所示,其中左图为OpenCV库函数均衡化的效果,右图是我们手动实现均衡化的效果,可见都达到了将原图的像素值均匀分开的效果

均衡化后的图像如图所示,其中左图为OpenCV库函数均衡化的效果,右图是我们手动实现均衡化的效果,可知二者效果基本相同,与原图相比,均衡化后的图像对比度提高了,其中云层增加了更多的细节,看起来更清晰了一些

 

完整代码如下 

import matplotlib.pyplot as plt
import cv2
import numpyimg = cv2.imread("OIP.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hist = cv2.calcHist([img], [0], None, [256], [0, 256])
cdf = hist.cumsum()
mapPixel = 255 * cdf / cdf[-1]
img = numpy.interp(img.ravel(), range(256), mapPixel).reshape(img.shape)
img = cv2.convertScaleAbs(img)
plt.hist(img.ravel(), bins=256)
plt.title('myEqualize')
plt.show()  # 均衡化直方图
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.title('myEqualize')
plt.show()  # 均衡化灰度图
http://www.yayakq.cn/news/718476/

相关文章:

  • 温州网站开发成都建设网上商城平台公司
  • 临沂市建设局兰山区网站电子商务是最差的专业吗
  • 徐州cms模板建站北京软件制作公司
  • 推荐西安优秀的高端网站建设公司域名后面wordpress
  • 大连html5网站建设费用平面设计包括哪些软件
  • 东莞长安网站制作做网站租服务器吗
  • 安娜尔返利机器人怎么做网站和县网页定制
  • 展示型网站有哪些功能网站建设经验交流
  • 做算命网站挣钱么百度推广销售员好做吗
  • 网站关键词排名优化应该怎么做网站搭建哪里找方便
  • 做视频推广有哪几个网站个人网站有前途吗
  • 潍坊昌乐县城乡建设局网站现在网站建设用什么软件
  • 一件代发应该在哪个网站上做房产中介 网站模板
  • 备案查询站长工具大数据技术建设网站
  • 网站建设合同 英文省住房和城乡建设厅网站
  • 网站建设贴吧郑州网站建设多少钱
  • 九州建网站网站联盟推广
  • 做展馆好的设计网站阜阳营销型网站建设
  • 电商网站设计公司排行榜网站推广工作
  • 网站备案查询工信部手机版中国精品课程网站
  • 罗湖医院网站建设wordpress插件放那个文件夹
  • 自己建设网站赚钱适合代码新手做的网站
  • 上海机电设备公司网站建设服装网站建设的宗旨有哪些
  • 西宁市城市道路建设规划网站成都制作网站的公司简介
  • php学校网站源码九江哪家网站建设公司好
  • 免费网站托管怎样做淘宝联盟网站
  • 山西网站建设公司商城网站系统建设
  • qt做网站虚拟体验网站
  • 网站建设问题小程序优点
  • 烟台网站开发多少钱深圳设计网站有哪些