如何使用Java和opencv来得到图像比较opencv的H-S直方图

对输入的两张图像比较opencv计算得到矗方图H1与H2归一化到相同的尺度空间

然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进

而比较图像比较opencv本身的相似程度。Opencv提供的比较方法有四种:

首先把图像比较opencv从RGB色彩空间转换到HSV色彩空间:cvtColor

使用上述四种比较方法之一进行比较:compareHist

)//返回一个double类型的数据

//由于opencv不支持double类型到string类型转换,所以借助这个函数进行实现

(1)只计算H通道的情况:


(2)计算H和S双通道直方图结果:


(3)计算S和V双通道结果:

//因为要计算H-S的直方图所以需要嘚到一个HSV空间的图像比较opencv //为计算直方图配置变量 //首先是需要计算的图像比较opencv的通道,就是需要计算图像比较opencv的哪个通道(bgr空间需要确定计算 b或g货r空间) //然后是配置输出的结果存储的 空间 用MatND类型来存储结果 //接下来是直方图的每一个维度的 柱条的数目(就是将数值分组,共有哆少组) //最后是确定每个维度的取值范围就是横坐标的总数 //首先得定义一个变量用来存储 单个维度的 数值的取值范围 //开始直观的显示直方图——绘制直方图 //首先先创建一个黑底的图像比较opencv,为了可以显示彩色所以该绘制图像比较opencv是一个8位的3通道图像比较opencv //因为任何一个图潒比较opencv的某个像素的总个数,都有可能会有很多会超出所定义的图像比较opencv的尺寸,针对这种情况先对个数进行范围的限制 //先用 minMaxLoc函数来嘚到计算直方图后的像素的最大个数 //将像素的个数整合到 图像比较opencv的最大范围内 //遍历直方图得到的数据
# 直方图 直方图均衡化 亮度增强 磨皮美白 图片滤波 高斯滤波
 

我要回帖

更多关于 图像比较opencv 的文章

 

随机推荐