__author__ = "WSX"
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt def plot( img):
plt.hist(img.ravel() , 256 ,[0 ,256])
print(img.ravel()) #统计频次
plt.show() def hist( img ):#反应图像的主要特征
color = ("blue" ,"green" , "red")
for i , color in enumerate(color):
hist = cv.calcHist([img] , [i], None ,[256],[0,256]) #参数2:通道数 参数三:mask存在?
plt.plot(hist , color = color)
plt.xlim([0 , 256])
plt.show() #-------------------------------直方图应用-------------------
# 均衡化(调整对比度) 和 比较 # 整体均衡化(基于灰度图) 增强图像的一个手段
def equ_hist( img ):
gray = cv.cvtColor( img , cv.COLOR_BAYER_BG2GRAY)
dst = cv.equalizeHist( gray ) # 均衡化
cv.imshow("equ" ,dst) # 局部均衡化
def equ_hist( img ):
gray = cv.cvtColor( img , cv.COLOR_BAYER_BG2GRAY)
cla = cv.createCLAHE( clipLimit= 2, tileGridSize=(8,8)) # 均衡化
dst = cla.apply(gray)
cv.imshow("equ" ,dst) #直方图比较(多种比较方法)比较图片相似度
def creat_rgb_hist( img ):
h , w ,c = img.shape
rgbhist = np.zeros([16 * 16 * 16 , 1] ,np.float32)
bsize = 256 / 16
pass def hist_compare(img1 , img2): #比较图像的相似性
hist1 = creat_rgb_hist( img1 )
hist2 = creat_rgb_hist( img2 )
match1 = cv.compareHist( hist1 , hist2, cv.HISTCMP_BHATTACHARYYA ) #第三个参数 是 比较的方式
match2 = cv.compareHist(hist1, hist2, cv.HISTCMP_CORREL)
match3 = cv.compareHist(hist1, hist2, cv.HISTCMP_CHISQR)
print("""巴氏:%s
相关性:%s
卡方:%s
""" %(match1 , match2 ,match3)) #----------------------------直方图反向投影-------------------------- def main():
img = cv.imread("1.JPG")
cv.namedWindow("Show", cv.WINDOW_AUTOSIZE)
cv.imshow("Show", img)
#plot(img)
hist(img)
cv.waitKey(0)
cv.destroyAllWindows() main()

8、OpenCV Python 图像直方图的更多相关文章

  1. opencv python 图像二值化/简单阈值化/大津阈值法

    pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...

  2. 【图像处理】基于OpenCV实现图像直方图的原理

    背景 图像的直方图是衡量图像像素分布的一种方式,可以通过分析像素分布,使用直方图均衡化对图像进行优化,让图像变的清晰. opencv官方对图像直方图的定义如下: 直方图是图像中像素强度分布的图形表达方 ...

  3. OpenCV(7)-图像直方图

    直方图定义可参考这里.图像的直方图用来表示图像像素的统计信息,它统计了图像每一个通道(如果是多通道)中,每个像素的个数(比例). 计算直方图 OpenCV提供了直接计算直方图的函数 void calc ...

  4. OPENCV(5) —— 图像直方图

    新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势. C++: void calcHist(const Mat* ...

  5. 11、OpenCV Python 图像金字塔

    __author__ = "WSX" import cv2 as cv import numpy as np # 高斯金字塔 #金字塔 原理 ==> 高斯模糊+ 降采样 #金 ...

  6. 10、OpenCV Python 图像二值化

    __author__ = "WSX" import cv2 as cv import numpy as np #-----------二值化(黑0和白 255)---------- ...

  7. 1、OpenCV Python 图像加载和保存

    __author__ = "WSX" import cv2 as cv # 这里的文件是图片或者视频 def Save_File( image ): cv.imwrite(&quo ...

  8. opencv:图像直方图均衡化

    // 直方图均衡化 Mat gray, dst; cvtColor(src, gray, COLOR_BGR2GRAY); equalizeHist(gray, dst); imshow(" ...

  9. OpenCV 绘制图像直方图

    OpenCV绘制图像直方图,版本2.4.11 直方图可展示图像中的像素分布,是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数.可以借助观察该直方图了解需要如何调整亮度分布.这种直方 ...

随机推荐

  1. python中的 ' ' 和 " "

    #!/usr/bin/python import MySQLdb try: conn = MySQLdb.connect(host = 'localhost', user = 'root', pass ...

  2. IIS安装与部署,站点的部署与配置

    第一章:IIS安装与部署 一,服务器概念的理解: 将设计好的软件只要部署到一台机器(服务器--->IIS)上,其它的员工通过浏览器(网址.)来进行访问. 做好的网站必须部署到这台机器上的IIS中 ...

  3. 云服务利用Auto Scaling节省30%成本

    公有云提供了很多免费的高级功能,很多中小用户以为自己用不上.实际上稍微研究一下,就能享受很多便利和节省不少成本. 本方案就是利用弹性伸缩(auto-scaling)减少服务器成本,几乎适合所有集群式部 ...

  4. 简单cpu web flask mysql

    转:http://blog.csdn.net/u010663768/article/details/60632133 python 2.7 cpu入库 #!/usr/bin/python # -*- ...

  5. 【转】Android下面打印进程函数调用堆栈(dump backtrace)的方法

    1. 为什么要打印函数调用堆栈? 打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系.比如函数A可能被B/C/D调用,如果只看代码,B/C/D谁调用A都有可能,如果打印出 ...

  6. Spring4新的javaConfig注解

    1.@RestController spring4为了更方便的支持restfull应用的开发,新增了RestController的注解,比Controller注解多的功能就是给底下的RequestMa ...

  7. eclipse中maven的配置与使用

    以eclipse Juno版本为例 1.插件安装 eclipse==>help====>install new software===>add name :m2e location: ...

  8. WKWebView的15条应用指南

    1.让一个web view充满屏幕 有时候你会看到有人向viewDidLoad()中添加代码,创建一个web view并让它充满整个可用区域.但这样效率很低,用起来很麻烦. 一个简单的方法是在你的视图 ...

  9. LINUX中错误 SELinux is disabled

    解决: setenforce: SELinux is disabled 那么说明selinux已经被彻底的关闭了 如果需要重新开启selinux,请按下面步骤: vi /etc/selinux/con ...

  10. cocos2d-js 热更新模块 使用AssetsManager

    原帖子地址:http://cn.cocos2d-x.org/tutorial/show?id=1186 在这个文章中原作者已经说的很清楚,我在这个其他改动一些适用我项目中需求 1.满足Web和Nati ...