zoukankan      html  css  js  c++  java
  • OpenCV——RGB三通道分离

    opencv 和 matlab 在处理彩色图像的时候。通道的存储顺序是不同的。

    matlab 的排列顺序是R,G,B; 而在opencv中,排列顺序是B,G,R。

     

    以下通过一个小程序看看opencv中的三个通道。


    // PS_Algorithm.h

    #ifndef PS_ALGORITHM_H_INCLUDED
    #define PS_ALGORITHM_H_INCLUDED

    #include <iostream>
    #include <string>
    #include "cv.h"
    #include "highgui.h"
    #include "cxmat.hpp"
    #include "cxcore.hpp"

    using namespace std;
    using namespace cv;

    #endif // PS_ALGORITHM_H_INCLUDED


    // Public_Function.h

    #ifndef PUBLIC_FUNCTION_H_INCLUDED
    #define PUBLIC_FUNCTION_H_INCLUDED

    #include <iostream>
    #include <string>
    #include "cv.h"
    #include "highgui.h"
    #include "cxmat.hpp"
    #include "cxcore.hpp"

    using namespace std;
    using namespace cv;

    void Show_Image(Mat&, const string &);
    void Save_Image(Mat&, const string &);

    #endif // PUBLIC_FUNCTION_H_INCLUDED


    /*
    The program will Divides multi-channel array
    into several single-channel arrays.
    We can get the single-channel from a multi-channel
    image.
    */

    #include "PS_Algorithm.h"
    #include "Public_Function.h"
    using namespace std;
    using namespace cv;

    int main()
    {
        string Img_name("4.jpg");
        Mat Image_in;
        Image_in=imread(Img_name);
        Show_Image(Image_in, Img_name);


        // convert the type of the image.
        // from the uchar to the float.
        Mat Image_2(Image_in.size(), CV_32FC3);
        Image_in.convertTo( Image_2, CV_32FC3);

        Mat r(Image_in.rows, Image_in.cols, CV_32FC1);
        Mat g(Image_in.rows, Image_in.cols, CV_32FC1);
        Mat b(Image_in.rows, Image_in.cols, CV_32FC1);


        Mat out[]={b,g,r};
        split(Image_2, out);

        // 三个通道的顺序是 b,g,r.
        b=out[0]/255;
        g=out[1]/255;
        r=out[2]/255;

        Show_Image(g, "g");
     
        waitKey();
    }


    原图



    R 通道



    G 通道



    B 通道


  • 相关阅读:
    CAGradientLayer
    AndroidStudio -- AndroidStuido中找不到cache.properties文件
    logcat -- 基本用法
    UiAutomator -- UiObject2 API
    Android UiAutomator UiDevice API
    Ubuntu 连接手机 不识别设备 -- 解决办法
    Ubuntu Cannot run program "../SDK/build-tools/xxx/aapt": erro = 2 No such file or directory
    Junit4
    Android Studio下运行UiAutomator
    Gradle sync failed: failed to find Build Tools revision 21.1.2
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6852821.html
Copyright © 2011-2022 走看看