zoukankan      html  css  js  c++  java
  • 5-3 直方图均衡化

    #灰度 直方图均衡化
    import cv2
    import numpy as np
    img = cv2.imread('image0.jpg',1)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    cv2.imshow('src',gray)
    dst = cv2.equalizeHist(gray)
    cv2.imshow('dst',dst)
    cv2.waitKey(0)

     我们使用直方图均衡化的时候,必须要对单通道进行处理。所以我们首先要完成通道的分解。我们要把原来的三通道分解成单通道。

    split()方法。将彩色图片传递进去之后,它返回的就是一个三通道数据。我们分别把三通道数据为大家实现一下。

    这样我们分别就有三个通道完成了直方图的均衡化。但是通道分解完之后我们要合并在一起。

    经过直方图均衡化之后,整个图片的颜色发生了一定的变化。这是彩色图片均衡化。

    #彩色 直方图均衡化
    import cv2
    import numpy as np
    img = cv2.imread('image0.jpg',1)
    #gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    cv2.imshow('src',img)
    (b,g,r) = cv2.split(img)# 通道分解
    bH = cv2.equalizeHist(b)#bH定义的是b通道的直方图均衡化之后的结果,我们将b通道的数据传递进去
    gH = cv2.equalizeHist(g)
    rH = cv2.equalizeHist(r)
    result = cv2.merge((bH,gH,rH))#merge()方法是opencv自带的 通道合成
    #dst = cv2.equalizeHist(gray)
    #cv2.imshow('dst',dst)
    cv2.imshow('dst',result)
    cv2.waitKey(0)

    图片读取进来之后我们要进行YUV的分解。这个cvt方法不光能实现彩色图片转化为灰度图片,还可以实现RGB图片转化为当前的YUV图片。

    YUV同样是由三个元素组成。它是一个三维的。我们首先把第一维获取出来,第一维的结果我们先把它进行直方图的均衡化一下。

    均衡化之后我们把当前的YUV三个通道再进行合成,合成一个channels。合成之后我们需要把当前的YUV再转成BGR图片。

    #YUV 直方图均衡化
    import cv2
    import numpy as np
    img = cv2.imread('image0.jpg',1)
    #gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    imgYUV = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)
    #cv2.imshow('src',gray)
    cv2.imshow('src',img)
    channelYUV = cv2.split(imgYUV)
    channelYUV[0] = cv2.equalizeHist(channelYUV[0])
    #dst = cv2.equalizeHist(gray)
    channels = cv2.merge(channelYUV)
    result = cv2.cvtColor(channels,cv2.COLOR_YCrCb2BGR)
    #cv2.imshow('dst',dst)
    cv2.imshow('dst',result)
    cv2.waitKey(0)
  • 相关阅读:
    代码阅读之术一:结构与源流
    linux cat /etc/passwd 说明
    Linux软连接
    文件上传文件的权限--lnmp 环境配置,尤其整个项目复制过来
    Redis面试总结
    php上传文件与图片到七牛的实例详解
    在浏览器中打开php文件时,是Linux中的哪个用户执行的?
    Laravel [1045] 解决方法 Access denied for user 'homestead'@'localhost'
    linux中快速清空文件内容的几种方法
    linux如何查看所有的用户和组信息?
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/9733781.html
Copyright © 2011-2022 走看看