zoukankan      html  css  js  c++  java
  • 5. 把一幅彩色图像的H、S、I分量单独显示。

    #include <cv.h>
    #include <highgui.h> 
    # include <math.h>
    #define M_PI 3.1415
    void RGB_to_HSI(IplImage *src, IplImage *dst);
    int main(void)
    {
        IplImage * oo  = cvLoadImage   ("6013202130.jpg", 1);
        IplImage * xx  = cvCreateImage  (cvGetSize(oo), 8, 1);
        RGB_to_HSI(oo, xx);
        cvNamedWindow("原图", 1);
        cvNamedWindow("HSI", 1);
        cvShowImage("原图", oo);
        cvShowImage("HSI" , xx);
        cvWaitKey(0);
        cvReleaseImage(&xx);
        cvReleaseImage(&oo);
        return 0;
    }
    
    void RGB_to_HSI(IplImage *src, IplImage *dst)
    {
        int i, j;
        double b, g, r, numm, den, min, theta, H, S, I;
        CvScalar s0;
        for (i = 0; i<src->height; i++)
        for (j = 0; j<src->width; j++)
        {
    
            s0 = cvGet2D(src, i, j);
            b = s0.val[0] / 255;//rgb归一化
            g = s0.val[1] / 255;
            r = s0.val[2] / 255;
            //几何推导法转换
            numm = 0.5*((r - g) + (r - b));
            den = sqrt((r - g)*(r - g) + (r - b)*(g - b));
            if (den == 0)
                H = 0;
            else
            {
                theta = acos(numm / den);
                if (b>g)
                    H = (2 * M_PI - theta) / (2 * M_PI);
                else
                    H = theta / (2 * M_PI);
            }
            min = (b>g) ? g : b;
            min = (min>r) ? r : min;
            den = r + g + b;
            if (den == 0)
                S = 0;
            else
                S = 1 - 3 * min / den;
            I = (r + g + b) / 3;
            cvSet2D(dst, i, j, cvScalar(H * 180, S * 255, I * 255));
        }
    }

  • 相关阅读:
    AGC算法
    Cordic算法
    git Remote: HTTP Basic: Access denied Git failed with a fatal error.
    mysql 定义用户变量
    Docker 报错处理
    IIS,Docker 部署.Net Core
    SpringBoot向后台传参的若干种方式
    修改Mysql 数据库以及表字符集
    安装Docker
    获取北京时间
  • 原文地址:https://www.cnblogs.com/zhangfeionline/p/5465190.html
Copyright © 2011-2022 走看看