zoukankan      html  css  js  c++  java
  • OpenCV

    RGB转灰度图

    IplImage* cvCreateImage( CvSize size, int depth, int channels );

    创建图像首地址,并分配存储空间。

    void cvCvtColor( const CvArr* src, CvArr* dst, int code );

    将数组的通道从一个颜色空间转换另外一个颜色空间;该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将rgb值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。

    cvLoadImage:将图像文件加载至内存;

    #include <stdio.h>
    #include <stdlib.h>
    #include <opencv/cv.h>
    #include <opencv/highgui.h>
    
    int toGray(IplImage* img)
    {
        IplImage* dst = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
        if(NULL == dst)
            return -1;
        cvCvtColor(img, dst, CV_BGR2GRAY);
    
        cvNamedWindow("Gray", CV_WINDOW_AUTOSIZE);
        cvShowImage("Gray", dst);
        cvSaveImage("Gray.jpg", dst, 0);//保存
        
        cvWaitKey(0);
        cvReleaseImage(&dst);
        cvDestroyWindow("Gray");
    
        return 1;
    }
    
    int main(int argc, char** argv)
    {
        if(argc != 2)
        {
            printf("Usage:test xxx.jpg
    ");
            return 1;
        }
    
        IplImage* img = cvLoadImage(argv[1], 
                CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);                                                                                                           //如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR。
        if(NULL == img)
        {
            printf("Image load fail!
    ");
            return 2;
        }
    
        cvNamedWindow("RGB", CV_WINDOW_AUTOSIZE);
        cvShowImage("RGB", img);
    
        toGray(img);
    
        cvReleaseImage(&img);
        cvDestroyWindow("RGB");
    
    }
  • 相关阅读:
    mono for android学习过程系列教程(6)
    mono for android学习过程系列教程(5)
    mono for android学习过程系列教程(4)
    mono for android学习过程系列教程(3)
    mono for android学习过程系列教程(2)
    mono for android学习过程系列教程(1)
    随笔索引
    中国大学MOOC中的后台文件传输
    知乎控件分享(一)
    知乎UWP 预览
  • 原文地址:https://www.cnblogs.com/i-love-kobe/p/6083694.html
Copyright © 2011-2022 走看看