hsv空间h-sopencv hsv直方图图什么意思

用matlab画一幅图像的HSV空间的直方图
[问题点数:100分,结帖人Q_Jizi]
用matlab画一幅图像的HSV空间的直方图
[问题点数:100分,结帖人Q_Jizi]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。示例程序038--H-S二维直方图
在反向投影中,要用到二维直方图。与1.0不同的是,2.3用MatND存储二维直方图结构,用calcHist计算二维直方图,用normalize归一化直方图,整体过程和1.0的一样,参见
程序比较简单,代码及注释:
// 046 绘制二维直方图 2.3版.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include &iostream&
#include &stdio.h&
int main()
//储存基准图像
&&Mat src,
&//&src = imread( "Lena.jpg"
&&src = imread( "Baboon.jpg"
&&/// 转换到 HSV
&&cvtColor( src, hsv, CV_BGR2HSV
对hue通道使用50个bin,对saturatoin通道使用60个bin
&&//int h_bins = 50; int s_bins =
&&int h_bins=256;int
s_bins=256;
&&int histSize[] = { h_bins,
&&// hue的取值范围从0到256,
saturation取值范围从0到180
&&float h_ranges[] = { 0, 255
&&float s_ranges[] = { 0, 255
&&const float* ranges[] = {
h_ranges, s_ranges };
&&// 使用第0和第1通道
&&int channels[] = { 0, 1 };
&&//创建直方图画布
&&int scale=2;
&&int hist_w=h_bins*2;
&&int hist_h=s_bins*2;
hist_image(hist_h,hist_w,CV_8UC3,Scalar(0,0,0));
&&/// 直方图矩阵,二维
&&MatND hist_
&&/// 计算基准HSV图像的二维直方图
&&calcHist( &hsv,
1, channels, Mat(), hist_base, 2, histSize, ranges, true, false
&&normalize( hist_base,
hist_base, 0, hist_h, NORM_MINMAX, -1, Mat() );
&&int h,s;
&&//绘制二维直方图,需要绘制每个点
&&for(h=0;h&h_h++)
&&&for(s=0;s&s_s++)
intensity=cvRound(hist_base.at&float&(h,s));
&&&&rectangle(hist_image,Point(h*scale,s*scale),Point((h+1)*scale-1,(s+1)*scale-1),CV_RGB(intensity,intensity,intensity),
&&&&&CV_FILLED);
&&namedWindow("H-S
Histogram",1);
&&imshow("H-S
Histogram",hist_image);
& waitKey(0);
& return 0;
运行结果:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。下次自动登录
现在的位置:
& 综合 & 正文
opencv HSV 颜色模型(H通道取值 &&
CV_BGR2HSV_FULL)
之前知道,
利用opencv把RGB图片像HSV颜色空间转变的时候,
H通道的值范围为: 0-180
利用直方图显示三个通道的时候,H通道都集中在前半部分,想让它取值范围扩大~~~~~~~
后来发现了
CV_BGR2HSV_FULL
CV_BGR2HSV 在转换图像的时候是将 H / 2
H ,我们知道图像中色相H的取值范围为 0-360 ,所以利用opencv转换之后得到的H的范围为 0-180
CV_BGR2HSV_FULL
实现的映射是 H * 255 / 360 ---&H , 所以利用_FULL 这个转换得到的H通道图像的范围为 0-255
这两种方式都是opencv把[0-360] 的数据压缩到一个字节可以处理的数据。[ 所以这里说的图像的depth = 8, 刚好能表示的最大值是 255]
上面说的图像的 depth = 8, 如果你的图像 位深不是 8位,比如 32 位, 那么你就可以得到 [0, 360] 表示的 H通道图像了。
in fact, HSV颜色模型规定的各通道取值范围为:
H : 0-360
可以利用 CV_BGR2HSV
S V 的  S V /255 转换得到。
对于同一幅图片:
采用CV_BGR2HSV得到的
三个通道的 直方图分布如下:
采用CV_BGR2HSV_FULL得到的
三个通道的 直方图分布如下:
&&&&推荐文章:
【上篇】【下篇】基于颜色直方图的颜色特征表示的参数有哪些_百度知道
基于颜色直方图的颜色特征表示的参数有哪些
提问者采纳
以此特征作为图像检索的主要依据、纹理等,就可以在大容量图像库中找到想要的图像;(2)HSV空间的非等间隔量化;(3)根据量化后的图像统计得到直方图基于内容的图像检索技术是一种综合集成技术。多媒体图像检索中最重要的颜色特征提取的方法,它通过分析图像的内容。它可以不去理解图像本文主要讨论在中的对象,并存储在特征库中,只要把自己对图像的模糊印象描述出来。用户在查询时:(1)将RGB颜色空间转换为适合肉眼分辨的HSV颜色空间,如颜色,更关注的是信息的快速查询和发现。2.颜色空间的转换特征提取的主要任务是把图像的颜色特征提取出来存入图像特征数据库,主要步骤为,建立特征索引
电脑网络爱好者
其他类似问题
为您推荐:
颜色直方图的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁hsv HSV 颜色模型 这个 中 的参数分别是:色彩(H),纯度(S),明度(V)。本程序利用hsv模 Special Effects 图形图像处理 240万源代码下载-
&文件名称: hsv& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1518 KB
&&上传时间:
&&下载次数: 22
&&提 供 者:
&详细说明:HSV 颜色模型 这个模型中颜色的参数分别是:色彩(H),纯度(S),明度(V)。本程序利用hsv模型提取图像中的感兴趣模型,并将背景区域抹去。-The colors of this model of the HSV color model parameters are: color (H), the purity of (S) and brightness (V). This procedure using the HSV model extraction model of interest in the image, and erase the background area.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&hsv\1023.jpg&&...\1024.jpg&&...\Untitled.m&&hsv
&[]:一般,勉强可用&[]:还不错
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站240万海量源码库中尽情搜索:
&[] - 图像检索――提取颜色特征:hsv空间颜色直方图(将RGB空间转化为HSV空间并进行非等间隔量化,将三个颜色分量表示成一维矢量,再计算其直方图作为颜色特征。
&[] - 本代码主要是基于hsv的阴影检测及消除,分别提取前景及背景图像,进行色彩空间转换。HSV空间类似人类感觉色彩的方式,可以更加准确地识别阴影,并保持在计算上简单。
&[] - 颜色hsv空间与RGB空间的相互转换,本程序已经测试可用于彩色图像处理.matlab代码,已经经过测试,很好用。
&[] - 在matlab中,通过形态学提取图像的边缘,进行处理
&[] - convert rgb to hsvconvert rgb to hsvconvert rgb to hsv convert rgb to hsv
&[] - 一个将一幅图像转化为hsv颜色空间直方图的程序
&[] - 超分辨率图像重建matlab 源码,实现了超分辨率图像重建算法
&[] - 去除彩色图像中的阴影,以便于图像分割,物体识别以及跟踪
&[] - 关于彩色图像中rgb空间与hsv空间的转换,HSV空间中直方图的显示
&[] - 包含三个部分的matlab程序
1.色彩变换
2.黄色目标提取
3.弹孔中心位置的提取
并且包含实验的说明

我要回帖

更多关于 hsv颜色直方图 matlab 的文章

 

随机推荐