zoukankan      html  css  js  c++  java
  • opencvmixChannels通道复制

    方式一

    #include<opencv2/opencv.hpp>
    #include<iostream>
    #include  <vector>
    
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::imread("D:/bb/tu/3.png");
        std::cerr << src.channels() << std::endl;
        cv::imshow("src", src);
    
        cv::Mat dst(src.rows, src.cols, CV_8UC3);
        std::vector<int> fromTo = { 0,2,1,1,2,0 };//通道对应信息
        //src的0通道复制到dst的2通道,src的1通道复制到dst的1通道,src的2通道复制到dst的0通道
        cv::mixChannels(src, dst, fromTo);//通道复制
    
        cv::imshow("dst", dst);
    
        cv::waitKey(0);
        return 0;
    }

    方式二

    #include<opencv2/opencv.hpp>
    #include<iostream>
    #include  <vector>
    
    
    int main(int argc, char** argv) {
    
        //把一个四通道矩阵,使用mixChannels()函数分割成了一个三通道矩阵和一个单通道矩阵,并且具有对应关系
        cv::Mat bgra(5, 4, CV_8UC4, cv::Scalar(10, 20, 30, 255));
        cv::Mat bgr(bgra.rows, bgra.cols, CV_8UC3);
        cv::Mat alpha(bgra.rows, bgra.cols, CV_8UC1);
    
        cv::Mat out[] = { bgr,alpha }; //通道组合
        int fromTo[] = { 0, 2, 1, 1, 2, 0, 3, 3 };//通道对应信息,从0开始
        cv::mixChannels(&bgra, 1, out, 2, fromTo, 4); //通道复制
        /*
        第一个参数:输入矩阵   const Mat *
        第二个参数:输入矩阵的数量   size_t
        第三个参数:输出矩阵   Mat *
        第四个参数:输出矩阵的数量   size_t
        第五个参数:通道对应信息    const int * 
        第六个参数:复制通道数量
        说明:在这个函数原型中,如果输入矩阵和输出矩阵都写1,那么就跟第一种函数原型是一致的了。
        如果不为1,就可以实现多个矩阵组合并或者一个矩阵拆分为多个复杂矩阵等功能
        */
        
        std::cerr << bgra << std::endl<< std::endl;
        std::cerr << bgr << std::endl << std::endl;
        std::cerr << alpha << std::endl << std::endl;
    
    
        cv::waitKey(0);
        return 0;
    }

  • 相关阅读:
    字典或者数组与JSON串之间的转换
    银联支付 支付代码
    iOS 一个新方法:- (void)makeObjectsPerformSelector:(SEL)aSelector;
    iOS 直接使用16进制颜色
    iOS 添加view的分类(更加方便的设置view的位置)
    iOS 中UITableView的深理解
    Swift 中调试状态下打印日志
    手把手教React Native实战开发视频教程【更新到40集啦。。。】
    React Native 开发
    React-Native学习指南
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15609565.html
Copyright © 2011-2022 走看看