OpenCV颜色空间(BGR转换HSV)转换后,H、S、V通道的取值范围是什么?

H通道取值范围 0-180。
S通道的取值范围是0-1;
V通道的取值范围是0-255; 

#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
int main( int argc, char** argv )
{
        IplImage* img = cvLoadImage("c:\\1.jpg",CV_LOAD_IMAGE_COLOR);
        IplImage* hsv = cvCreateImage(cvGetSize(img),8,3);

        cvCvtColor(img,hsv,CV_BGR2HSV);

        cvReleaseImage(&hsv);
        cvReleaseImage( &img );

        return 0;
}
加入:
        for (int i = 0; i < hsv->height; i++)
        {
                for (int j = 0; j < hsv->width; j++)
                {
                        double h = cvGet2D(hsv, i, j).val[0];
                        double s = cvGet2D(hsv, i, j).val[1];
                        double v = cvGet2D(hsv, i, j).val[2];

//                        if (v > 254)
//                        {
//                                printf("%f\n", v);
//                        }
//                        fprintf(fp, "%f,%f,%f\n", h, s, v);
                }
        }

可以得到,H(0-180)S(0-255)V(0-255);
如果调用cvCvtColor(img,hsv,CV_BGR2HSV)时,将img和hsv都转为32位浮点型图像,得到的是:
H(0-360)S(0-1)V(0-255)!

H的取值范围是0-180,原来H通道的取值范围是0-360的,但创建的图像是8位无符号的3通道图像,所以,OpenCV进行了压缩,就直接将H通道压缩到了0-180的范围。
S通道的取值范围是0-1;V通道的取值范围是0-255;这个说的是对的

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值